diff --git a/js/src/vue-components/multiline/multiline.component.js b/js/src/vue-components/multiline/multiline.component.js
index b34b6bae08..a2669281ff 100644
--- a/js/src/vue-components/multiline/multiline.component.js
+++ b/js/src/vue-components/multiline/multiline.component.js
@@ -46,10 +46,11 @@ export default {
},
data: function () {
const tableDefault = {
- basic: false,
+ compact: 'very',
+ basic: 'very',
+ unstackable: true,
celled: false,
collapsing: false,
- stackable: false,
inverted: false,
};
diff --git a/public/css/agileui.less b/public/css/agileui.less
index 1b20489655..e78b1414d5 100644
--- a/public/css/agileui.less
+++ b/public/css/agileui.less
@@ -395,6 +395,13 @@ i.atk-panel-warning {
}
}
+// add unofficial support for "wrapping" for Fomantic-UI Menu
+// https://github.com/fomantic/Fomantic-UI/issues/2345
+// https://github.com/fomantic/Fomantic-UI/blob/2.9.1/src/definitions/elements/button.less#L1901
+.ui.menu.wrapping {
+ flex-wrap: wrap;
+}
+
// Print
@media print {
diff --git a/public/css/agileui.min.css b/public/css/agileui.min.css
index aae666d198..e8edc63343 100644
--- a/public/css/agileui.min.css
+++ b/public/css/agileui.min.css
@@ -1 +1 @@
-.atk-table-dropdown i.table-filter-off::after,.atk-table-dropdown i.table-filter-on::after{content:"\f150"}.ui.inverted.fixed.atk-admin-top-menu{border:1px solid rgba(255,255,255,.1);z-index:201}.atk-maestro-sidenav>.ui.grid{width:260px}.atk-sidenav-content{overflow:hidden auto}.ui.sidebar.atk-sidenav .menu>.item.active{background:0 0}.atk-maestro-sidenav{cursor:pointer;color:#fff}.atk-maestro-sidenav>.ui.grid>.atk-maestro-menu-items{display:none}.atk-maestro-sidenav>.ui.grid>.atk-maestro-menu-items.atk-visible{display:flex}.ui.inverted.menu a.atk-maestro-sidenav.item{padding-left:34px}.atk-maestro-sidenav .ui.grid .row,.ui.input .ui.popup.calendar{padding:0}.ui.inverted.menu a.atk-maestro-sidenav.item i{margin-right:2px}.ui.inverted.menu a.atk-maestro-sidenav.item.active{background-color:#2185d0}.atk-maestro-sidenav .atk-submenu-toggle div{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.atk-maestro-sidenav:not(.active) .atk-submenu-toggle:hover{background-color:rgba(255,255,255,.15)}.atk-maestro-sidenav .ui.grid .column{padding-top:8px;padding-bottom:8px}.atk-maestro-sidenav .ui.grid .atk-maestro-menu-title header{margin-left:-10px}.atk-maestro-sidenav .ui.grid .atk-maestro-menu-items .menu{margin-left:10px}.atk-maestro-sidenav.active .atk-maestro-menu-title{background-color:#2185d0}header.ui.fixed.horizontal.menu{min-height:48px}.ui.visible.left.sidebar~header.atk-topMenu.ui.menu.fixed{width:calc(100% - 260px)}.ui.visible.left.sidebar~.atk-mainContainer,.ui.visible.left.sidebar~footer.atk-footer{padding-left:260px}.ui.modal .atk-dialog-content .ui.dimmer.active,.ui.modal .atk-dialog-content.loading{min-height:100px}.atk-hide-loading-content.loading::before{background-color:#fff!important;opacity:.98}.atk-layout{display:flex;min-height:100vh;flex-direction:column}.atk-topMenuGhost.ui.menu{display:none;margin:0;pointer-events:none;visibility:hidden}header.atk-topMenu.ui.fixed.menu~.atk-topMenuGhost{display:block}header.atk-topMenu.ui.menu .item>.label{margin-left:0}.atk-mainContainer{flex:1}.atk-mainContainer .atk-mainContainerWrapper{padding:2em}.atk-mainContainer.atk-admin-layout{margin-top:48px}footer.atk-footer .ui.divider,footer.atk-footer .ui.segment{margin:0}.ui.left.sidebar{z-index:200}.atk-right-panel{transition:box-shadow .2s,right .2s;bottom:0;background-color:#f9fafb;box-shadow:0 0 0 rgba(27,28,29,0);height:99%;right:-100%;overflow-y:auto;position:fixed;width:40%;z-index:301}.atk-right-panel.atk-visible{box-shadow:0 0 5px rgba(27,28,29,.2);right:0}.atk-right-panel .ui.loading.form::before,.atk-right-panel .ui.loading.segment::before{background-color:#f9fafb!important}.atk-panel-close{color:#1b1c1d}i.atk-panel-warning{color:#f9fafb}i.atk-panel-warning.atk-visible{color:#f2711c}.ui.left.sidebar.atk-sidenav{top:48px;width:260px}.atk-sidenav-content{height:calc(100% - 98px)}.atk-table-dropdown{float:left}.atk-table-dropdown i{opacity:.3}.atk-table-dropdown i.table-filter-on::after{color:#1e90ff}.atk-table-dropdown .dropdown .menu{margin:1em -10px 0!important}.atk-table-column-header{white-space:pre-wrap}.atk-table-column-header::after{font-style:normal;font-weight:400;text-decoration:inherit;content:"";height:1em;width:auto;opacity:.8;margin:0 0 0 .5em;font-family:Icons;float:right}.atk-table-column-header.ascending::after{content:"\f0d8"}.atk-table-column-header.descending::after{content:"\f0d7"}.ui.sortable.table thead th:not(.sortable){cursor:default}.ui.step,.ui.steps .step{user-select:none}.atk-overflow-auto{overflow:auto;border:1px solid rgba(34,36,38,.15);margin-bottom:1em}.atk-overflow-auto>.ui.table{margin-top:0}.atk-cell-expanded{min-width:320px;max-width:640px;white-space:normal}.atk-overlay.pushable{height:100%;left:0;opacity:0;pointer-events:none;position:fixed;top:48px;width:100%;z-index:101}.atk-overlay.pushable .pusher::after{height:100%;opacity:1;width:100%}@media (max-width:991px){.ui.left.sidebar~header.atk-topMenu.ui.menu.fixed{transform:translate3d(0,0,0);width:100%!important}.ui.visible.left.sidebar~.atk-mainContainer,.ui.visible.left.sidebar~footer.atk-footer{padding-left:0}.ui.left.sidebar{opacity:0;pointer-events:none;transform:translate3d(0,0,0);visibility:visible}body.atk-sidenav-visible::after{left:0;position:fixed;top:0}body.atk-sidenav-visible .ui.left.sidebar{opacity:1;pointer-events:auto}body.atk-sidenav-visible .ui.left.sidebar .atk-leftMenuClose{display:block}body.atk-sidenav-visible .atk-overlay.pushable{opacity:1}}@media (min-width:768px) and (max-width:991px){.atk-right-panel{width:65%}}@media (max-width:767px){.atk-right-panel{width:95%}}@media print{.ui.visible.left.sidebar~.atk-mainContainer,.ui.visible.left.sidebar~footer.atk-footer{padding-left:0}.atk-topMenu,.atk-topMenuGhost,.ui.left.sidebar{display:none!important}}/*# sourceMappingURL=agileui.min.css.map */
\ No newline at end of file
+.atk-table-dropdown i.table-filter-off::after,.atk-table-dropdown i.table-filter-on::after{content:"\f150"}.ui.inverted.fixed.atk-admin-top-menu{border:1px solid rgba(255,255,255,.1);z-index:201}.atk-maestro-sidenav>.ui.grid{width:260px}.atk-sidenav-content{overflow:hidden auto}.ui.sidebar.atk-sidenav .menu>.item.active{background:0 0}.atk-maestro-sidenav{cursor:pointer;color:#fff}.atk-maestro-sidenav>.ui.grid>.atk-maestro-menu-items{display:none}.atk-maestro-sidenav>.ui.grid>.atk-maestro-menu-items.atk-visible{display:flex}.ui.inverted.menu a.atk-maestro-sidenav.item{padding-left:34px}.atk-maestro-sidenav .ui.grid .row,.ui.input .ui.popup.calendar{padding:0}.ui.inverted.menu a.atk-maestro-sidenav.item i{margin-right:2px}.ui.inverted.menu a.atk-maestro-sidenav.item.active{background-color:#2185d0}.atk-maestro-sidenav .atk-submenu-toggle div{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.atk-maestro-sidenav:not(.active) .atk-submenu-toggle:hover{background-color:rgba(255,255,255,.15)}.atk-maestro-sidenav .ui.grid .column{padding-top:8px;padding-bottom:8px}.atk-maestro-sidenav .ui.grid .atk-maestro-menu-title header{margin-left:-10px}.atk-maestro-sidenav .ui.grid .atk-maestro-menu-items .menu{margin-left:10px}.atk-maestro-sidenav.active .atk-maestro-menu-title{background-color:#2185d0}header.ui.fixed.horizontal.menu{min-height:48px}.ui.visible.left.sidebar~header.atk-topMenu.ui.menu.fixed{width:calc(100% - 260px)}.ui.visible.left.sidebar~.atk-mainContainer,.ui.visible.left.sidebar~footer.atk-footer{padding-left:260px}.ui.modal .atk-dialog-content .ui.dimmer.active,.ui.modal .atk-dialog-content.loading{min-height:100px}.atk-hide-loading-content.loading::before{background-color:#fff!important;opacity:.98}.atk-layout{display:flex;min-height:100vh;flex-direction:column}.atk-topMenuGhost.ui.menu{display:none;margin:0;pointer-events:none;visibility:hidden}header.atk-topMenu.ui.fixed.menu~.atk-topMenuGhost{display:block}header.atk-topMenu.ui.menu .item>.label{margin-left:0}.atk-mainContainer{flex:1}.atk-mainContainer .atk-mainContainerWrapper{padding:2em}.atk-mainContainer.atk-admin-layout{margin-top:48px}footer.atk-footer .ui.divider,footer.atk-footer .ui.segment{margin:0}.ui.left.sidebar{z-index:200}.atk-right-panel{transition:box-shadow .2s,right .2s;bottom:0;background-color:#f9fafb;box-shadow:0 0 0 rgba(27,28,29,0);height:99%;right:-100%;overflow-y:auto;position:fixed;width:40%;z-index:301}.atk-right-panel.atk-visible{box-shadow:0 0 5px rgba(27,28,29,.2);right:0}.atk-right-panel .ui.loading.form::before,.atk-right-panel .ui.loading.segment::before{background-color:#f9fafb!important}.atk-panel-close{color:#1b1c1d}i.atk-panel-warning{color:#f9fafb}i.atk-panel-warning.atk-visible{color:#f2711c}.ui.left.sidebar.atk-sidenav{top:48px;width:260px}.atk-sidenav-content{height:calc(100% - 98px)}.atk-table-dropdown{float:left}.atk-table-dropdown i{opacity:.3}.atk-table-dropdown i.table-filter-on::after{color:#1e90ff}.atk-table-dropdown .dropdown .menu{margin:1em -10px 0!important}.atk-table-column-header{white-space:pre-wrap}.atk-table-column-header::after{font-style:normal;font-weight:400;text-decoration:inherit;content:"";height:1em;width:auto;opacity:.8;margin:0 0 0 .5em;font-family:Icons;float:right}.atk-table-column-header.ascending::after{content:"\f0d8"}.atk-table-column-header.descending::after{content:"\f0d7"}.ui.sortable.table thead th:not(.sortable){cursor:default}.ui.step,.ui.steps .step{user-select:none}.atk-overflow-auto{overflow:auto;border:1px solid rgba(34,36,38,.15);margin-bottom:1em}.atk-overflow-auto>.ui.table{margin-top:0}.atk-cell-expanded{min-width:320px;max-width:640px;white-space:normal}.atk-overlay.pushable{height:100%;left:0;opacity:0;pointer-events:none;position:fixed;top:48px;width:100%;z-index:101}.atk-overlay.pushable .pusher::after{height:100%;opacity:1;width:100%}@media (max-width:991px){.ui.left.sidebar~header.atk-topMenu.ui.menu.fixed{transform:translate3d(0,0,0);width:100%!important}.ui.visible.left.sidebar~.atk-mainContainer,.ui.visible.left.sidebar~footer.atk-footer{padding-left:0}.ui.left.sidebar{opacity:0;pointer-events:none;transform:translate3d(0,0,0);visibility:visible}body.atk-sidenav-visible::after{left:0;position:fixed;top:0}body.atk-sidenav-visible .ui.left.sidebar{opacity:1;pointer-events:auto}body.atk-sidenav-visible .ui.left.sidebar .atk-leftMenuClose{display:block}body.atk-sidenav-visible .atk-overlay.pushable{opacity:1}}@media (min-width:768px) and (max-width:991px){.atk-right-panel{width:65%}}@media (max-width:767px){.atk-right-panel{width:95%}}.ui.menu.wrapping{flex-wrap:wrap}@media print{.ui.visible.left.sidebar~.atk-mainContainer,.ui.visible.left.sidebar~footer.atk-footer{padding-left:0}.atk-topMenu,.atk-topMenuGhost,.ui.left.sidebar{display:none!important}}/*# sourceMappingURL=agileui.min.css.map */
\ No newline at end of file
diff --git a/public/css/agileui.min.css.map b/public/css/agileui.min.css.map
index d1952efe11..aee34009cc 100644
--- a/public/css/agileui.min.css.map
+++ b/public/css/agileui.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["agileui.less"],"names":[],"mappings":"AAqQS,8CANA,6CAOG,QAAA,QA7MM,sCACd,OAAA,IAAA,MAAA,qBACA,QAAA,IAKsB,8BACtB,MAAA,MAGJ,qBACI,SAAA,OAAA,KAKa,2CACT,eAMR,qBACI,OAAA,QACA,MAAA,KAG4B,sDAC5B,QAAA,KACC,kEACG,QAAA,KAK+B,6CACnC,aAAA,KAyBI,mCA0LW,6BAzLP,QAAA,EAzBR,+CACI,aAAA,IAEH,oDACG,iBAAA,QAMA,6CACI,OAAA,KACA,QAAA,KACA,eAAA,OACA,YAAA,OACA,gBAAA,OAIe,4DACf,iBAAA,sBAOJ,sCACI,YAAA,IACA,eAAA,IAEoB,6DACpB,YAAA,MAEoB,4DACpB,YAAA,KAKgB,oDACxB,iBAAA,QAIsB,gCACtB,WAAA,KAGiD,0DACjD,MAAA,mBAEqB,4CACQ,2CAC7B,aAAA,MAIoC,gDADX,sCAEzB,WAAA,MAG6B,0CAC7B,iBAAA,eACA,QAAA,IAGJ,YACI,QAAA,KACA,WAAA,MACA,eAAA,OAEgB,0BAChB,QAAA,KACA,OAAA,EACA,eAAA,KACA,WAAA,OAE6B,mDAC7B,QAAA,MAE6B,wCAC7B,YAAA,EAGJ,mBACI,KAAA,EACA,6CACI,QAAA,IAEH,oCACG,WAAA,KAID,8BACA,8BACC,OAAA,EAIA,iBACJ,QAAA,IAGJ,iBACI,WAAA,WAAA,IAAA,MAAA,IAGA,OAAA,EACA,iBAAA,QACA,WAAA,EAAA,EAAA,EAAA,iBACA,OAAA,IACA,MAAA,MACA,WAAA,KACA,SAAA,MACA,MAAA,IACA,QAAA,IACC,6BACG,WAAA,EAAA,EAAA,IAAA,kBACA,MAAA,EAIY,0CADG,6CAEf,iBAAA,kBAIR,iBACI,MAAA,QAGH,oBACG,MAAA,QACC,gCACG,MAAA,QAIQ,6BACZ,IAAA,KAQA,MAAA,MALJ,qBACI,OAAA,kBAQJ,oBACI,MAAA,KACA,sBACI,QAAA,GAGC,6CAEG,MAAA,QASJ,oCACI,OAAA,IAAA,MAAA,YAKZ,yBACI,YAAA,SACC,gCAEG,WAAA,OACA,YAAA,IACA,gBAAA,QACA,QAAA,GACA,OAAA,IACA,MAAA,KACA,QAAA,GACA,OAAA,EAAA,EAAA,EAAA,KACA,YAAA,MACA,MAAA,MAIH,0CACG,QAAA,QAKH,2CACG,QAAA,QAIuB,2CAC3B,OAAA,QAWD,SACO,gBACN,YAAA,KAGJ,mBACI,SAAA,KACA,OAAA,IAAA,MAAA,mBACA,cAAA,IACK,6BACD,WAAA,EAGR,mBACI,UAAA,MACA,UAAA,MACA,YAAA,OAEQ,sBACR,OAAA,KACA,KAAA,EACA,QAAA,EACA,eAAA,KACA,SAAA,MACA,IAAA,KACA,MAAA,KACA,QAAA,IAEK,qCACG,OAAA,KACA,QAAA,EACA,MAAA,KAqC4B,yBA7BS,kDACzC,UAAW,mBACX,MAAA,eAEqB,4CACQ,2CAC7B,aAAA,EAEI,iBACJ,QAAA,EACA,eAAA,KACA,UAAW,mBACX,WAAA,QAGC,gCACG,KAAA,EACA,SAAA,MACA,IAAA,EAEI,0CACJ,QAAA,EACA,eAAA,KACA,6DACI,QAAA,MAMyB,+CACjC,QAAA,GAIgE,+CACpE,iBACI,MAAA,KAGiC,yBACrC,iBACI,MAAA,KAMR,aAC6B,4CACQ,2CAC7B,aAAA,EAGJ,aACA,kBAFQ,iBAGJ,QAAA"}
\ No newline at end of file
+{"version":3,"sources":["agileui.less"],"names":[],"mappings":"AAqQS,8CANA,6CAOG,QAAA,QA7MM,sCACd,OAAA,IAAA,MAAA,qBACA,QAAA,IAKsB,8BACtB,MAAA,MAGJ,qBACI,SAAA,OAAA,KAKa,2CACT,eAMR,qBACI,OAAA,QACA,MAAA,KAG4B,sDAC5B,QAAA,KACC,kEACG,QAAA,KAK+B,6CACnC,aAAA,KAyBI,mCA0LW,6BAzLP,QAAA,EAzBR,+CACI,aAAA,IAEH,oDACG,iBAAA,QAMA,6CACI,OAAA,KACA,QAAA,KACA,eAAA,OACA,YAAA,OACA,gBAAA,OAIe,4DACf,iBAAA,sBAOJ,sCACI,YAAA,IACA,eAAA,IAEoB,6DACpB,YAAA,MAEoB,4DACpB,YAAA,KAKgB,oDACxB,iBAAA,QAIsB,gCACtB,WAAA,KAGiD,0DACjD,MAAA,mBAEqB,4CACQ,2CAC7B,aAAA,MAIoC,gDADX,sCAEzB,WAAA,MAG6B,0CAC7B,iBAAA,eACA,QAAA,IAGJ,YACI,QAAA,KACA,WAAA,MACA,eAAA,OAEgB,0BAChB,QAAA,KACA,OAAA,EACA,eAAA,KACA,WAAA,OAE6B,mDAC7B,QAAA,MAE6B,wCAC7B,YAAA,EAGJ,mBACI,KAAA,EACA,6CACI,QAAA,IAEH,oCACG,WAAA,KAID,8BACA,8BACC,OAAA,EAIA,iBACJ,QAAA,IAGJ,iBACI,WAAA,WAAA,IAAA,MAAA,IAGA,OAAA,EACA,iBAAA,QACA,WAAA,EAAA,EAAA,EAAA,iBACA,OAAA,IACA,MAAA,MACA,WAAA,KACA,SAAA,MACA,MAAA,IACA,QAAA,IACC,6BACG,WAAA,EAAA,EAAA,IAAA,kBACA,MAAA,EAIY,0CADG,6CAEf,iBAAA,kBAIR,iBACI,MAAA,QAGH,oBACG,MAAA,QACC,gCACG,MAAA,QAIQ,6BACZ,IAAA,KAQA,MAAA,MALJ,qBACI,OAAA,kBAQJ,oBACI,MAAA,KACA,sBACI,QAAA,GAGC,6CAEG,MAAA,QASJ,oCACI,OAAA,IAAA,MAAA,YAKZ,yBACI,YAAA,SACC,gCAEG,WAAA,OACA,YAAA,IACA,gBAAA,QACA,QAAA,GACA,OAAA,IACA,MAAA,KACA,QAAA,GACA,OAAA,EAAA,EAAA,EAAA,KACA,YAAA,MACA,MAAA,MAIH,0CACG,QAAA,QAKH,2CACG,QAAA,QAIuB,2CAC3B,OAAA,QAWD,SACO,gBACN,YAAA,KAGJ,mBACI,SAAA,KACA,OAAA,IAAA,MAAA,mBACA,cAAA,IACK,6BACD,WAAA,EAGR,mBACI,UAAA,MACA,UAAA,MACA,YAAA,OAEQ,sBACR,OAAA,KACA,KAAA,EACA,QAAA,EACA,eAAA,KACA,SAAA,MACA,IAAA,KACA,MAAA,KACA,QAAA,IAEK,qCACG,OAAA,KACA,QAAA,EACA,MAAA,KAqC4B,yBA7BS,kDACzC,UAAW,mBACX,MAAA,eAEqB,4CACQ,2CAC7B,aAAA,EAEI,iBACJ,QAAA,EACA,eAAA,KACA,UAAW,mBACX,WAAA,QAGC,gCACG,KAAA,EACA,SAAA,MACA,IAAA,EAEI,0CACJ,QAAA,EACA,eAAA,KACA,6DACI,QAAA,MAMyB,+CACjC,QAAA,GAIgE,+CACpE,iBACI,MAAA,KAGiC,yBACrC,iBACI,MAAA,KAOA,kBACJ,UAAA,KAKJ,aAC6B,4CACQ,2CAC7B,aAAA,EAGJ,aACA,kBAFQ,iBAGJ,QAAA"}
\ No newline at end of file
diff --git a/public/js/atk-vue-multiline.js b/public/js/atk-vue-multiline.js
index 228eea0807..9fb9971aac 100644
--- a/public/js/atk-vue-multiline.js
+++ b/public/js/atk-vue-multiline.js
@@ -504,10 +504,11 @@ __webpack_require__.r(__webpack_exports__);
},
data: function () {
const tableDefault = {
- basic: false,
+ compact: 'very',
+ basic: 'very',
+ unstackable: true,
celled: false,
collapsing: false,
- stackable: false,
inverted: false
};
return {
diff --git a/public/js/atk-vue-multiline.js.map b/public/js/atk-vue-multiline.js.map
index c5dfa22b03..72b62435bb 100644
--- a/public/js/atk-vue-multiline.js.map
+++ b/public/js/atk-vue-multiline.js.map
@@ -1 +1 @@
-{"version":3,"file":"js/atk-vue-multiline.js","mappings":"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","sources":["webpack://atk/./src/vue-components/multiline/multiline-body.component.js","webpack://atk/./src/vue-components/multiline/multiline-cell.component.js","webpack://atk/./src/vue-components/multiline/multiline-header.component.js","webpack://atk/./src/vue-components/multiline/multiline-readonly.component.js","webpack://atk/./src/vue-components/multiline/multiline-row.component.js","webpack://atk/./src/vue-components/multiline/multiline-textarea.component.js","webpack://atk/./src/vue-components/multiline/multiline.component.js","webpack://atk/./src/vue-components/share/atk-date-picker.js","webpack://atk/./src/vue-components/share/atk-lookup.js","webpack://atk/./node_modules/core-js/modules/esnext.async-iterator.some.js","webpack://atk/./node_modules/core-js/modules/esnext.iterator.some.js"],"sourcesContent":["import multilineRow from './multiline-row.component';\n\nexport default {\n name: 'AtkMultilineBody',\n template: `\n \n \n `,\n props: ['fieldDefs', 'rowData', 'deletables', 'errors'],\n data: function () {\n return { fields: this.fieldDefs };\n },\n created: function () {},\n components: {\n AtkMultilineRow: multilineRow,\n },\n computed: {\n rows: function () {\n return this.rowData;\n },\n },\n emits: ['onTabLastRow'],\n methods: {\n onTabLastColumn: function (rowIndex) {\n if (rowIndex + 1 === this.rowData.length) {\n this.$emit('onTabLastRow');\n }\n },\n isDeletableRow: function (row) {\n return this.deletables.includes(row.__atkml);\n },\n getRowErrors: function (rowId) {\n return this.errors[rowId] ?? [];\n },\n },\n};\n","import multilineReadonly from './multiline-readonly.component';\nimport multilineTextarea from './multiline-textarea.component';\nimport atkDatePicker from '../share/atk-date-picker';\nimport atkLookup from '../share/atk-lookup';\n\nexport default {\n name: 'AtkMultilineCell',\n template: `\n `,\n components: {\n AtkMultilineReadonly: multilineReadonly,\n AtkMultilineTextarea: multilineTextarea,\n AtkDatePicker: atkDatePicker,\n AtkLookup: atkLookup,\n },\n props: ['cellData', 'fieldValue'],\n data: function () {\n return {\n fieldName: this.cellData.name,\n type: this.cellData.type,\n inputName: '-' + this.cellData.name,\n inputValue: this.fieldValue,\n };\n },\n emits: ['updateValue'],\n methods: {\n getComponent: function () {\n return this.cellData.definition.component;\n },\n getComponentProps: function () {\n if (this.getComponent() === 'AtkMultilineReadonly') {\n return { readOnlyValue: this.fieldValue };\n }\n\n return this.cellData.definition.componentProps;\n },\n onInput: function (value) {\n this.inputValue = value;\n this.$emit('updateValue', this.fieldName, this.inputValue);\n },\n },\n};\n","import atk from 'atk';\n\nexport default {\n name: 'AtkMultilineHeader',\n template: `\n \n \n \n \n \n {{getErrorMsg(column)}}\n \n \n \n {{caption}} \n \n \n \n \n \n \n {{column.caption}}
\n \n {{getErrorMsg(column)}} \n
\n \n \n `,\n props: ['fields', 'selectionState', 'errors', 'caption'],\n data: function () {\n return { columns: this.fields, isDeleteAll: false };\n },\n methods: {\n filterVisibleColumns: function (columns) {\n return columns.filter((v) => v.isVisible);\n },\n onToggleDeleteAll: function () {\n this.$nextTick(() => {\n atk.eventBus.emit(this.$root.$el.parentElement.id + '-toggle-delete-all', { isOn: this.$refs.check.checked });\n });\n },\n getTextAlign: function (column) {\n let align = 'left';\n if (!column.isEditable) {\n switch (column.type) {\n case 'integer':\n case 'float':\n case 'atk4_money': {\n align = 'right';\n\n break;\n }\n }\n }\n\n return align;\n },\n getVisibleColumns: function () {\n let count = 1; // add deletable column;\n for (const field of this.columns) {\n count = field.isVisible ? count + 1 : count;\n }\n\n return count;\n },\n hasError: function () {\n return Object.keys(this.errors).length > 0;\n },\n hasCaption: function () {\n return this.caption;\n },\n getErrorMsg: function (column) {\n if (this.hasError()) {\n const rows = Object.keys(this.errors);\n for (const row of rows) {\n const error = this.errors[row].filter((col) => col.name === column.name);\n if (error.length > 0) {\n return error[0].msg;\n }\n }\n }\n\n return null;\n },\n },\n computed: {\n isIndeterminate: function () {\n return this.selectionState === 'indeterminate';\n },\n isChecked: function () {\n return this.selectionState === 'on';\n },\n },\n};\n","/**\n * Simply display a readonly value.\n */\nexport default {\n name: 'AtkMultilineReadonly',\n template: '
{{readOnlyValue}}
',\n props: ['readOnlyValue'],\n};\n","import atk from 'atk';\nimport multilineCell from './multiline-cell.component';\n\n/**\n * This will create a table td element using SuiTableCell.\n * The td element is created only if column as set isVisible = true;\n * The td element will add a multiline cell element.\n * the multiline cell will set it's own template component depending on the fieldType.\n * getValue\n */\nexport default {\n name: 'AtkMultilineRow',\n template: `\n \n \n \n \n \n \n \n `,\n props: ['fields', 'rowId', 'isDeletable', 'rowValues', 'errors'],\n data: function () {\n return { columns: this.fields };\n },\n components: {\n AtkMultilineCell: multilineCell,\n },\n computed: {\n /**\n * toDelete is bind by v-model, thus we need a setter for\n * computed property to work.\n * When isDeletable is pass, will set checkbox according to it's value.\n */\n toDelete: {\n get: function () {\n return this.isDeletable;\n },\n set: function (v) {\n return v;\n },\n },\n },\n emits: ['onTabLastColumn'],\n methods: {\n filterVisibleColumns: function (columns) {\n return columns.filter((v) => v.isVisible);\n },\n onTab: function (columnIndex) {\n if (columnIndex === this.columns.filter((column) => column.isEditable).length - 1) {\n this.$emit('onTabLastColumn');\n }\n },\n hasColumnError: function (column) {\n return this.errors.some((v) => column.name === v.name);\n },\n onToggleDelete: function (e) {\n atk.eventBus.emit(this.$root.$el.parentElement.id + '-toggle-delete', { rowId: this.rowId });\n },\n onUpdateValue: function (fieldName, value) {\n atk.eventBus.emit(this.$root.$el.parentElement.id + '-update-row', { rowId: this.rowId, fieldName: fieldName, value: value });\n },\n getValue: function (column) {\n return this.rowValues[column.name] || column.default;\n },\n },\n};\n","export default {\n name: 'AtkMultilineTextarea',\n template: '',\n props: ['modelValue'],\n emits: ['update:modelValue'],\n methods: {\n onInput: function (event) {\n this.$emit('update:modelValue', event.target.value);\n },\n },\n};\n","import $ from 'external/jquery';\nimport atk from 'atk';\nimport multilineBody from './multiline-body.component';\nimport multilineHeader from './multiline-header.component';\n\nexport default {\n name: 'AtkMultiline',\n template: `\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n
`,\n props: {\n data: Object,\n },\n data: function () {\n const tableDefault = {\n basic: false,\n celled: false,\n collapsing: false,\n stackable: false,\n inverted: false,\n };\n\n return {\n form: this.data.formName,\n valueJson: this.data.inputValue,\n name: this.data.inputName,\n rowData: [],\n fieldData: this.data.fields || [],\n eventFields: this.data.eventFields || [],\n deletables: [],\n hasChangeCb: this.data.hasChangeCb,\n errors: {},\n caption: this.data.caption || null,\n tableProp: { ...tableDefault, ...this.data.tableProps },\n };\n },\n components: {\n AtkMultilineHeader: multilineHeader,\n AtkMultilineBody: multilineBody,\n },\n mounted: function () {\n this.rowData = this.buildRowData(this.valueJson ?? '[]');\n this.updateInputValue();\n\n atk.eventBus.on(this.$root.$el.parentElement.id + '-update-row', (payload) => {\n this.onUpdate(payload.rowId, payload.fieldName, payload.value);\n });\n\n atk.eventBus.on(this.$root.$el.parentElement.id + '-toggle-delete', (payload) => {\n const i = this.deletables.indexOf(payload.rowId);\n if (i !== -1) {\n this.deletables.splice(i, 1);\n } else {\n this.deletables.push(payload.rowId);\n }\n });\n\n atk.eventBus.on(this.$root.$el.parentElement.id + '-toggle-delete-all', (payload) => {\n this.deletables = [];\n if (payload.isOn) {\n for (const row of this.rowData) {\n this.deletables.push(row.__atkml);\n }\n }\n });\n\n atk.eventBus.on(this.$root.$el.parentElement.id + '-multiline-rows-error', (payload) => {\n this.errors = { ...payload.errors };\n });\n },\n methods: {\n onTabLastRow: function () {\n if (!this.isLimitReached && this.data.addOnTab) {\n this.onAdd();\n }\n },\n onAdd: function () {\n const newRow = this.createRow(this.data.fields);\n this.rowData.push(newRow);\n this.updateInputValue();\n if (this.data.afterAdd && typeof this.data.afterAdd === 'function') {\n this.data.afterAdd(JSON.parse(this.valueJson));\n }\n this.fetchExpression(newRow.__atkml);\n this.fetchOnUpdateAction();\n },\n onDelete: function () {\n for (const atkmlId of this.deletables) {\n this.deleteRow(atkmlId);\n }\n this.deletables = [];\n this.updateInputValue();\n this.fetchOnUpdateAction();\n if (this.data.afterDelete && typeof this.data.afterDelete === 'function') {\n this.data.afterDelete(JSON.parse(this.valueJson));\n }\n },\n onUpdate: function (atkmlId, fieldName, value) {\n this.updateFieldInRow(atkmlId, fieldName, value);\n this.clearError(atkmlId, fieldName);\n this.updateInputValue();\n\n if (!this.onUpdate.debouncedFx) {\n this.onUpdate.debouncedFx = atk.createDebouncedFx(() => {\n this.onUpdate.debouncedFx = null;\n this.fetchExpression(atkmlId);\n this.fetchOnUpdateAction(fieldName);\n }, 250);\n }\n this.onUpdate.debouncedFx.call(this);\n },\n /**\n * Creates a new row of data and\n * set values to default if available.\n */\n createRow: function (fields) {\n const row = {};\n for (const field of fields) {\n row[field.name] = field.default;\n }\n row.__atkml = this.getUUID();\n\n return row;\n },\n deleteRow: function (atkmlId) {\n this.rowData.splice(this.rowData.findIndex((row) => row.__atkml === atkmlId), 1);\n delete this.errors[atkmlId];\n },\n /**\n * Update the value of the field in rowData.\n */\n updateFieldInRow: function (atkmlId, fieldName, value) {\n for (const row of this.rowData) {\n if (row.__atkml === atkmlId) {\n row[fieldName] = value;\n }\n }\n },\n clearError: function (atkmlId, fieldName) {\n if (atkmlId in this.errors) {\n const errors = this.errors[atkmlId].filter((error) => error.name !== fieldName);\n this.errors[atkmlId] = [...errors];\n if (errors.length === 0) {\n delete this.errors[atkmlId];\n }\n }\n },\n /**\n * Update Multi-line Form input with all rowData values\n * as JSON string.\n */\n updateInputValue: function () {\n this.valueJson = JSON.stringify(this.rowData);\n },\n /**\n * Build rowData from JSON string.\n */\n buildRowData: function (jsonValue) {\n const rows = JSON.parse(jsonValue);\n for (const row of rows) {\n row.__atkml = this.getUUID();\n }\n\n return rows;\n },\n /**\n * Check if one of the field use expression.\n */\n hasExpression: function () {\n return this.fieldData.some((field) => field.isExpr);\n },\n /**\n * Send on change action to server.\n */\n fetchOnUpdateAction: function (fieldName = null) {\n if (this.hasChangeCb && (fieldName === null || this.eventFields.includes(fieldName))) {\n $(this.$refs.addButton.$el).api({\n on: 'now',\n url: this.data.url,\n method: 'POST',\n data: { __atkml_action: 'on-change', rows: this.valueJson },\n });\n }\n },\n postData: async function (row) {\n const data = { ...row };\n const context = this.$refs.addButton.$el;\n data.__atkml_action = 'update-row';\n try {\n return await atk.apiService.suiFetch(this.data.url, { data: data, method: 'POST', stateContext: context });\n } catch (e) {\n console.error(e);\n }\n },\n /**\n * Get expressions values from server.\n */\n fetchExpression: async function (atkmlId) {\n if (this.hasExpression()) {\n const row = this.findRow(atkmlId);\n // server will return expression field/value if defined\n if (row) {\n const resp = await this.postData(row);\n if (resp.expressions) {\n const fields = Object.keys(resp.expressions);\n for (const field of fields) {\n this.updateFieldInRow(atkmlId, field, resp.expressions[field]);\n }\n this.updateInputValue();\n }\n }\n }\n },\n findRow: function (atkmlId) {\n return this.rowData.find((row) => row.__atkml === atkmlId);\n },\n getInputElement: function () {\n return this.$refs.atkmlInput;\n },\n /**\n * UUID v4 generator.\n */\n getUUID: function () {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replaceAll(/[xy]/g, (c) => {\n const r = Math.floor(Math.random() * 16);\n const v = c === 'x' ? r : r & (0x3 | 0x8); // eslint-disable-line no-bitwise\n\n return v.toString(16);\n });\n },\n },\n computed: {\n getSpan: function () {\n return this.fieldData.length - 1;\n },\n getDeletables: function () {\n return this.deletables;\n },\n /**\n * Return Delete all checkbox state base on\n * deletables entries.\n */\n getMainToggleState: function () {\n let res = 'off';\n if (this.deletables.length > 0) {\n res = this.deletables.length === this.rowData.length\n ? 'on'\n : 'indeterminate';\n }\n\n return res;\n },\n isDeleteDisable: function () {\n return this.deletables.length === 0;\n },\n isLimitReached: function () {\n if (this.data.rowLimit === 0) {\n return false;\n }\n\n return this.data.rowLimit < this.rowData.length + 1;\n },\n },\n};\n","/* global flatpickr */ // loaded after main JS\n\n/**\n * Wrapper for vue-flatpickr-component component.\n *\n * https://github.com/ankurk91/vue-flatpickr-component\n *\n * Properties:\n * config: Any of Flatpickr options\n */\nexport default {\n name: 'AtkDatePicker',\n template: `\n `,\n props: ['config', 'modelValue'],\n data: function () {\n const config = { ...this.config };\n\n if (config.defaultDate && !this.modelValue) {\n config.defaultDate = new Date();\n } else if (this.modelValue) {\n config.defaultDate = this.modelValue;\n }\n\n if (!config.locale) {\n config.locale = flatpickr.l10ns.default;\n }\n\n return {\n flatPickr: config,\n };\n },\n emits: ['setDefault'],\n mounted: function () {\n // if value is not set but default date is, then emit proper string value to parent\n if (!this.modelValue && this.flatPickr.defaultDate) {\n this.onUpdate(\n this.flatPickr.defaultDate instanceof Date\n ? flatpickr.formatDate(this.config.defaultDate, this.config.dateFormat)\n : this.flatPickr.defaultDate\n );\n }\n },\n methods: {\n getFlatpickrValue: function (value) {\n return value;\n },\n onUpdate: function (value) {\n this.$emit('update:modelValue', value);\n },\n },\n};\n","/**\n * Wrapper for Fomantic-UI dropdown component into a lookup component.\n *\n * Properties:\n * config:\n * reference: the reference field name associate with model or hasOne name. This field name will be sent along with URL callback parameter as of 'field=name'.\n * Note: The remaining config object may contain any or SuiDropdown { props: value } pair.\n *\n * modelValue: The selected value.\n * optionalValue: The initial list of options for the dropdown.\n */\nexport default {\n name: 'AtkLookup',\n template: `\n `,\n props: ['config', 'modelValue', 'optionalValue'],\n data: function () {\n const {\n url, reference, ...otherConfig\n } = this.config;\n otherConfig.selection = true;\n\n return {\n dropdownProps: otherConfig,\n url: url || null,\n field: reference,\n query: '',\n temp: '',\n };\n },\n mounted: function () {\n if (this.optionalValue) {\n this.dropdownProps.options = Array.isArray(this.optionalValue) ? this.optionalValue : [this.optionalValue];\n }\n },\n emits: ['update:modelValue'],\n methods: {\n getDropdownValue: function (value) {\n return this.dropdownProps.options.find((item) => item.value === value);\n },\n onUpdate: function (value) {\n this.$emit('update:modelValue', value.value);\n },\n },\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/async-iterator-iteration').some;\n\n// `AsyncIterator.prototype.some` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n some: function some(predicate) {\n return $some(this, predicate);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.some` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n some: function some(predicate) {\n anObject(this);\n aCallable(predicate);\n var record = getIteratorDirect(this);\n var counter = 0;\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n"],"names":["multilineRow","name","template","props","data","fields","fieldDefs","created","components","AtkMultilineRow","computed","rows","rowData","emits","methods","onTabLastColumn","rowIndex","length","$emit","isDeletableRow","row","deletables","includes","__atkml","getRowErrors","rowId","errors","multilineReadonly","multilineTextarea","atkDatePicker","atkLookup","AtkMultilineReadonly","AtkMultilineTextarea","AtkDatePicker","AtkLookup","fieldName","cellData","type","inputName","inputValue","fieldValue","getComponent","definition","component","getComponentProps","readOnlyValue","componentProps","onInput","value","atk","columns","isDeleteAll","filterVisibleColumns","filter","v","isVisible","onToggleDeleteAll","$nextTick","eventBus","emit","$root","$el","parentElement","id","isOn","$refs","check","checked","getTextAlign","column","align","isEditable","getVisibleColumns","count","field","hasError","Object","keys","hasCaption","caption","getErrorMsg","error","col","msg","isIndeterminate","selectionState","isChecked","multilineCell","AtkMultilineCell","toDelete","get","isDeletable","set","onTab","columnIndex","hasColumnError","some","onToggleDelete","e","onUpdateValue","getValue","rowValues","default","event","target","$","multilineBody","multilineHeader","tableDefault","basic","celled","collapsing","stackable","inverted","form","formName","valueJson","fieldData","eventFields","hasChangeCb","tableProp","tableProps","AtkMultilineHeader","AtkMultilineBody","mounted","buildRowData","updateInputValue","on","payload","onUpdate","i","indexOf","splice","push","onTabLastRow","isLimitReached","addOnTab","onAdd","newRow","createRow","afterAdd","JSON","parse","fetchExpression","fetchOnUpdateAction","onDelete","atkmlId","deleteRow","afterDelete","updateFieldInRow","clearError","debouncedFx","createDebouncedFx","call","getUUID","findIndex","stringify","jsonValue","hasExpression","isExpr","arguments","undefined","addButton","api","url","method","__atkml_action","postData","context","apiService","suiFetch","stateContext","console","findRow","resp","expressions","find","getInputElement","atkmlInput","replaceAll","c","r","Math","floor","random","toString","getSpan","getDeletables","getMainToggleState","res","isDeleteDisable","rowLimit","config","defaultDate","modelValue","Date","locale","flatpickr","l10ns","flatPickr","formatDate","dateFormat","getFlatpickrValue","reference","otherConfig","selection","dropdownProps","query","temp","optionalValue","options","Array","isArray","getDropdownValue","item"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"js/atk-vue-multiline.js","mappings":"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","sources":["webpack://atk/./src/vue-components/multiline/multiline-body.component.js","webpack://atk/./src/vue-components/multiline/multiline-cell.component.js","webpack://atk/./src/vue-components/multiline/multiline-header.component.js","webpack://atk/./src/vue-components/multiline/multiline-readonly.component.js","webpack://atk/./src/vue-components/multiline/multiline-row.component.js","webpack://atk/./src/vue-components/multiline/multiline-textarea.component.js","webpack://atk/./src/vue-components/multiline/multiline.component.js","webpack://atk/./src/vue-components/share/atk-date-picker.js","webpack://atk/./src/vue-components/share/atk-lookup.js","webpack://atk/./node_modules/core-js/modules/esnext.async-iterator.some.js","webpack://atk/./node_modules/core-js/modules/esnext.iterator.some.js"],"sourcesContent":["import multilineRow from './multiline-row.component';\n\nexport default {\n name: 'AtkMultilineBody',\n template: `\n \n \n `,\n props: ['fieldDefs', 'rowData', 'deletables', 'errors'],\n data: function () {\n return { fields: this.fieldDefs };\n },\n created: function () {},\n components: {\n AtkMultilineRow: multilineRow,\n },\n computed: {\n rows: function () {\n return this.rowData;\n },\n },\n emits: ['onTabLastRow'],\n methods: {\n onTabLastColumn: function (rowIndex) {\n if (rowIndex + 1 === this.rowData.length) {\n this.$emit('onTabLastRow');\n }\n },\n isDeletableRow: function (row) {\n return this.deletables.includes(row.__atkml);\n },\n getRowErrors: function (rowId) {\n return this.errors[rowId] ?? [];\n },\n },\n};\n","import multilineReadonly from './multiline-readonly.component';\nimport multilineTextarea from './multiline-textarea.component';\nimport atkDatePicker from '../share/atk-date-picker';\nimport atkLookup from '../share/atk-lookup';\n\nexport default {\n name: 'AtkMultilineCell',\n template: `\n `,\n components: {\n AtkMultilineReadonly: multilineReadonly,\n AtkMultilineTextarea: multilineTextarea,\n AtkDatePicker: atkDatePicker,\n AtkLookup: atkLookup,\n },\n props: ['cellData', 'fieldValue'],\n data: function () {\n return {\n fieldName: this.cellData.name,\n type: this.cellData.type,\n inputName: '-' + this.cellData.name,\n inputValue: this.fieldValue,\n };\n },\n emits: ['updateValue'],\n methods: {\n getComponent: function () {\n return this.cellData.definition.component;\n },\n getComponentProps: function () {\n if (this.getComponent() === 'AtkMultilineReadonly') {\n return { readOnlyValue: this.fieldValue };\n }\n\n return this.cellData.definition.componentProps;\n },\n onInput: function (value) {\n this.inputValue = value;\n this.$emit('updateValue', this.fieldName, this.inputValue);\n },\n },\n};\n","import atk from 'atk';\n\nexport default {\n name: 'AtkMultilineHeader',\n template: `\n \n \n \n \n \n {{getErrorMsg(column)}}\n \n \n \n {{caption}} \n \n \n \n \n \n \n {{column.caption}}
\n \n {{getErrorMsg(column)}} \n
\n \n \n `,\n props: ['fields', 'selectionState', 'errors', 'caption'],\n data: function () {\n return { columns: this.fields, isDeleteAll: false };\n },\n methods: {\n filterVisibleColumns: function (columns) {\n return columns.filter((v) => v.isVisible);\n },\n onToggleDeleteAll: function () {\n this.$nextTick(() => {\n atk.eventBus.emit(this.$root.$el.parentElement.id + '-toggle-delete-all', { isOn: this.$refs.check.checked });\n });\n },\n getTextAlign: function (column) {\n let align = 'left';\n if (!column.isEditable) {\n switch (column.type) {\n case 'integer':\n case 'float':\n case 'atk4_money': {\n align = 'right';\n\n break;\n }\n }\n }\n\n return align;\n },\n getVisibleColumns: function () {\n let count = 1; // add deletable column;\n for (const field of this.columns) {\n count = field.isVisible ? count + 1 : count;\n }\n\n return count;\n },\n hasError: function () {\n return Object.keys(this.errors).length > 0;\n },\n hasCaption: function () {\n return this.caption;\n },\n getErrorMsg: function (column) {\n if (this.hasError()) {\n const rows = Object.keys(this.errors);\n for (const row of rows) {\n const error = this.errors[row].filter((col) => col.name === column.name);\n if (error.length > 0) {\n return error[0].msg;\n }\n }\n }\n\n return null;\n },\n },\n computed: {\n isIndeterminate: function () {\n return this.selectionState === 'indeterminate';\n },\n isChecked: function () {\n return this.selectionState === 'on';\n },\n },\n};\n","/**\n * Simply display a readonly value.\n */\nexport default {\n name: 'AtkMultilineReadonly',\n template: '{{readOnlyValue}}
',\n props: ['readOnlyValue'],\n};\n","import atk from 'atk';\nimport multilineCell from './multiline-cell.component';\n\n/**\n * This will create a table td element using SuiTableCell.\n * The td element is created only if column as set isVisible = true;\n * The td element will add a multiline cell element.\n * the multiline cell will set it's own template component depending on the fieldType.\n * getValue\n */\nexport default {\n name: 'AtkMultilineRow',\n template: `\n \n \n \n \n \n \n \n `,\n props: ['fields', 'rowId', 'isDeletable', 'rowValues', 'errors'],\n data: function () {\n return { columns: this.fields };\n },\n components: {\n AtkMultilineCell: multilineCell,\n },\n computed: {\n /**\n * toDelete is bind by v-model, thus we need a setter for\n * computed property to work.\n * When isDeletable is pass, will set checkbox according to it's value.\n */\n toDelete: {\n get: function () {\n return this.isDeletable;\n },\n set: function (v) {\n return v;\n },\n },\n },\n emits: ['onTabLastColumn'],\n methods: {\n filterVisibleColumns: function (columns) {\n return columns.filter((v) => v.isVisible);\n },\n onTab: function (columnIndex) {\n if (columnIndex === this.columns.filter((column) => column.isEditable).length - 1) {\n this.$emit('onTabLastColumn');\n }\n },\n hasColumnError: function (column) {\n return this.errors.some((v) => column.name === v.name);\n },\n onToggleDelete: function (e) {\n atk.eventBus.emit(this.$root.$el.parentElement.id + '-toggle-delete', { rowId: this.rowId });\n },\n onUpdateValue: function (fieldName, value) {\n atk.eventBus.emit(this.$root.$el.parentElement.id + '-update-row', { rowId: this.rowId, fieldName: fieldName, value: value });\n },\n getValue: function (column) {\n return this.rowValues[column.name] || column.default;\n },\n },\n};\n","export default {\n name: 'AtkMultilineTextarea',\n template: '',\n props: ['modelValue'],\n emits: ['update:modelValue'],\n methods: {\n onInput: function (event) {\n this.$emit('update:modelValue', event.target.value);\n },\n },\n};\n","import $ from 'external/jquery';\nimport atk from 'atk';\nimport multilineBody from './multiline-body.component';\nimport multilineHeader from './multiline-header.component';\n\nexport default {\n name: 'AtkMultiline',\n template: `\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n
`,\n props: {\n data: Object,\n },\n data: function () {\n const tableDefault = {\n compact: 'very',\n basic: 'very',\n unstackable: true,\n celled: false,\n collapsing: false,\n inverted: false,\n };\n\n return {\n form: this.data.formName,\n valueJson: this.data.inputValue,\n name: this.data.inputName,\n rowData: [],\n fieldData: this.data.fields || [],\n eventFields: this.data.eventFields || [],\n deletables: [],\n hasChangeCb: this.data.hasChangeCb,\n errors: {},\n caption: this.data.caption || null,\n tableProp: { ...tableDefault, ...this.data.tableProps },\n };\n },\n components: {\n AtkMultilineHeader: multilineHeader,\n AtkMultilineBody: multilineBody,\n },\n mounted: function () {\n this.rowData = this.buildRowData(this.valueJson ?? '[]');\n this.updateInputValue();\n\n atk.eventBus.on(this.$root.$el.parentElement.id + '-update-row', (payload) => {\n this.onUpdate(payload.rowId, payload.fieldName, payload.value);\n });\n\n atk.eventBus.on(this.$root.$el.parentElement.id + '-toggle-delete', (payload) => {\n const i = this.deletables.indexOf(payload.rowId);\n if (i !== -1) {\n this.deletables.splice(i, 1);\n } else {\n this.deletables.push(payload.rowId);\n }\n });\n\n atk.eventBus.on(this.$root.$el.parentElement.id + '-toggle-delete-all', (payload) => {\n this.deletables = [];\n if (payload.isOn) {\n for (const row of this.rowData) {\n this.deletables.push(row.__atkml);\n }\n }\n });\n\n atk.eventBus.on(this.$root.$el.parentElement.id + '-multiline-rows-error', (payload) => {\n this.errors = { ...payload.errors };\n });\n },\n methods: {\n onTabLastRow: function () {\n if (!this.isLimitReached && this.data.addOnTab) {\n this.onAdd();\n }\n },\n onAdd: function () {\n const newRow = this.createRow(this.data.fields);\n this.rowData.push(newRow);\n this.updateInputValue();\n if (this.data.afterAdd && typeof this.data.afterAdd === 'function') {\n this.data.afterAdd(JSON.parse(this.valueJson));\n }\n this.fetchExpression(newRow.__atkml);\n this.fetchOnUpdateAction();\n },\n onDelete: function () {\n for (const atkmlId of this.deletables) {\n this.deleteRow(atkmlId);\n }\n this.deletables = [];\n this.updateInputValue();\n this.fetchOnUpdateAction();\n if (this.data.afterDelete && typeof this.data.afterDelete === 'function') {\n this.data.afterDelete(JSON.parse(this.valueJson));\n }\n },\n onUpdate: function (atkmlId, fieldName, value) {\n this.updateFieldInRow(atkmlId, fieldName, value);\n this.clearError(atkmlId, fieldName);\n this.updateInputValue();\n\n if (!this.onUpdate.debouncedFx) {\n this.onUpdate.debouncedFx = atk.createDebouncedFx(() => {\n this.onUpdate.debouncedFx = null;\n this.fetchExpression(atkmlId);\n this.fetchOnUpdateAction(fieldName);\n }, 250);\n }\n this.onUpdate.debouncedFx.call(this);\n },\n /**\n * Creates a new row of data and\n * set values to default if available.\n */\n createRow: function (fields) {\n const row = {};\n for (const field of fields) {\n row[field.name] = field.default;\n }\n row.__atkml = this.getUUID();\n\n return row;\n },\n deleteRow: function (atkmlId) {\n this.rowData.splice(this.rowData.findIndex((row) => row.__atkml === atkmlId), 1);\n delete this.errors[atkmlId];\n },\n /**\n * Update the value of the field in rowData.\n */\n updateFieldInRow: function (atkmlId, fieldName, value) {\n for (const row of this.rowData) {\n if (row.__atkml === atkmlId) {\n row[fieldName] = value;\n }\n }\n },\n clearError: function (atkmlId, fieldName) {\n if (atkmlId in this.errors) {\n const errors = this.errors[atkmlId].filter((error) => error.name !== fieldName);\n this.errors[atkmlId] = [...errors];\n if (errors.length === 0) {\n delete this.errors[atkmlId];\n }\n }\n },\n /**\n * Update Multi-line Form input with all rowData values\n * as JSON string.\n */\n updateInputValue: function () {\n this.valueJson = JSON.stringify(this.rowData);\n },\n /**\n * Build rowData from JSON string.\n */\n buildRowData: function (jsonValue) {\n const rows = JSON.parse(jsonValue);\n for (const row of rows) {\n row.__atkml = this.getUUID();\n }\n\n return rows;\n },\n /**\n * Check if one of the field use expression.\n */\n hasExpression: function () {\n return this.fieldData.some((field) => field.isExpr);\n },\n /**\n * Send on change action to server.\n */\n fetchOnUpdateAction: function (fieldName = null) {\n if (this.hasChangeCb && (fieldName === null || this.eventFields.includes(fieldName))) {\n $(this.$refs.addButton.$el).api({\n on: 'now',\n url: this.data.url,\n method: 'POST',\n data: { __atkml_action: 'on-change', rows: this.valueJson },\n });\n }\n },\n postData: async function (row) {\n const data = { ...row };\n const context = this.$refs.addButton.$el;\n data.__atkml_action = 'update-row';\n try {\n return await atk.apiService.suiFetch(this.data.url, { data: data, method: 'POST', stateContext: context });\n } catch (e) {\n console.error(e);\n }\n },\n /**\n * Get expressions values from server.\n */\n fetchExpression: async function (atkmlId) {\n if (this.hasExpression()) {\n const row = this.findRow(atkmlId);\n // server will return expression field/value if defined\n if (row) {\n const resp = await this.postData(row);\n if (resp.expressions) {\n const fields = Object.keys(resp.expressions);\n for (const field of fields) {\n this.updateFieldInRow(atkmlId, field, resp.expressions[field]);\n }\n this.updateInputValue();\n }\n }\n }\n },\n findRow: function (atkmlId) {\n return this.rowData.find((row) => row.__atkml === atkmlId);\n },\n getInputElement: function () {\n return this.$refs.atkmlInput;\n },\n /**\n * UUID v4 generator.\n */\n getUUID: function () {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replaceAll(/[xy]/g, (c) => {\n const r = Math.floor(Math.random() * 16);\n const v = c === 'x' ? r : r & (0x3 | 0x8); // eslint-disable-line no-bitwise\n\n return v.toString(16);\n });\n },\n },\n computed: {\n getSpan: function () {\n return this.fieldData.length - 1;\n },\n getDeletables: function () {\n return this.deletables;\n },\n /**\n * Return Delete all checkbox state base on\n * deletables entries.\n */\n getMainToggleState: function () {\n let res = 'off';\n if (this.deletables.length > 0) {\n res = this.deletables.length === this.rowData.length\n ? 'on'\n : 'indeterminate';\n }\n\n return res;\n },\n isDeleteDisable: function () {\n return this.deletables.length === 0;\n },\n isLimitReached: function () {\n if (this.data.rowLimit === 0) {\n return false;\n }\n\n return this.data.rowLimit < this.rowData.length + 1;\n },\n },\n};\n","/* global flatpickr */ // loaded after main JS\n\n/**\n * Wrapper for vue-flatpickr-component component.\n *\n * https://github.com/ankurk91/vue-flatpickr-component\n *\n * Properties:\n * config: Any of Flatpickr options\n */\nexport default {\n name: 'AtkDatePicker',\n template: `\n `,\n props: ['config', 'modelValue'],\n data: function () {\n const config = { ...this.config };\n\n if (config.defaultDate && !this.modelValue) {\n config.defaultDate = new Date();\n } else if (this.modelValue) {\n config.defaultDate = this.modelValue;\n }\n\n if (!config.locale) {\n config.locale = flatpickr.l10ns.default;\n }\n\n return {\n flatPickr: config,\n };\n },\n emits: ['setDefault'],\n mounted: function () {\n // if value is not set but default date is, then emit proper string value to parent\n if (!this.modelValue && this.flatPickr.defaultDate) {\n this.onUpdate(\n this.flatPickr.defaultDate instanceof Date\n ? flatpickr.formatDate(this.config.defaultDate, this.config.dateFormat)\n : this.flatPickr.defaultDate\n );\n }\n },\n methods: {\n getFlatpickrValue: function (value) {\n return value;\n },\n onUpdate: function (value) {\n this.$emit('update:modelValue', value);\n },\n },\n};\n","/**\n * Wrapper for Fomantic-UI dropdown component into a lookup component.\n *\n * Properties:\n * config:\n * reference: the reference field name associate with model or hasOne name. This field name will be sent along with URL callback parameter as of 'field=name'.\n * Note: The remaining config object may contain any or SuiDropdown { props: value } pair.\n *\n * modelValue: The selected value.\n * optionalValue: The initial list of options for the dropdown.\n */\nexport default {\n name: 'AtkLookup',\n template: `\n `,\n props: ['config', 'modelValue', 'optionalValue'],\n data: function () {\n const {\n url, reference, ...otherConfig\n } = this.config;\n otherConfig.selection = true;\n\n return {\n dropdownProps: otherConfig,\n url: url || null,\n field: reference,\n query: '',\n temp: '',\n };\n },\n mounted: function () {\n if (this.optionalValue) {\n this.dropdownProps.options = Array.isArray(this.optionalValue) ? this.optionalValue : [this.optionalValue];\n }\n },\n emits: ['update:modelValue'],\n methods: {\n getDropdownValue: function (value) {\n return this.dropdownProps.options.find((item) => item.value === value);\n },\n onUpdate: function (value) {\n this.$emit('update:modelValue', value.value);\n },\n },\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/async-iterator-iteration').some;\n\n// `AsyncIterator.prototype.some` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n some: function some(predicate) {\n return $some(this, predicate);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.some` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n some: function some(predicate) {\n anObject(this);\n aCallable(predicate);\n var record = getIteratorDirect(this);\n var counter = 0;\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n"],"names":["multilineRow","name","template","props","data","fields","fieldDefs","created","components","AtkMultilineRow","computed","rows","rowData","emits","methods","onTabLastColumn","rowIndex","length","$emit","isDeletableRow","row","deletables","includes","__atkml","getRowErrors","rowId","errors","multilineReadonly","multilineTextarea","atkDatePicker","atkLookup","AtkMultilineReadonly","AtkMultilineTextarea","AtkDatePicker","AtkLookup","fieldName","cellData","type","inputName","inputValue","fieldValue","getComponent","definition","component","getComponentProps","readOnlyValue","componentProps","onInput","value","atk","columns","isDeleteAll","filterVisibleColumns","filter","v","isVisible","onToggleDeleteAll","$nextTick","eventBus","emit","$root","$el","parentElement","id","isOn","$refs","check","checked","getTextAlign","column","align","isEditable","getVisibleColumns","count","field","hasError","Object","keys","hasCaption","caption","getErrorMsg","error","col","msg","isIndeterminate","selectionState","isChecked","multilineCell","AtkMultilineCell","toDelete","get","isDeletable","set","onTab","columnIndex","hasColumnError","some","onToggleDelete","e","onUpdateValue","getValue","rowValues","default","event","target","$","multilineBody","multilineHeader","tableDefault","compact","basic","unstackable","celled","collapsing","inverted","form","formName","valueJson","fieldData","eventFields","hasChangeCb","tableProp","tableProps","AtkMultilineHeader","AtkMultilineBody","mounted","buildRowData","updateInputValue","on","payload","onUpdate","i","indexOf","splice","push","onTabLastRow","isLimitReached","addOnTab","onAdd","newRow","createRow","afterAdd","JSON","parse","fetchExpression","fetchOnUpdateAction","onDelete","atkmlId","deleteRow","afterDelete","updateFieldInRow","clearError","debouncedFx","createDebouncedFx","call","getUUID","findIndex","stringify","jsonValue","hasExpression","isExpr","arguments","undefined","addButton","api","url","method","__atkml_action","postData","context","apiService","suiFetch","stateContext","console","findRow","resp","expressions","find","getInputElement","atkmlInput","replaceAll","c","r","Math","floor","random","toString","getSpan","getDeletables","getMainToggleState","res","isDeleteDisable","rowLimit","config","defaultDate","modelValue","Date","locale","flatpickr","l10ns","flatPickr","formatDate","dateFormat","getFlatpickrValue","reference","otherConfig","selection","dropdownProps","query","temp","optionalValue","options","Array","isArray","getDropdownValue","item"],"sourceRoot":""}
\ No newline at end of file
diff --git a/public/js/atk-vue-multiline.min.js b/public/js/atk-vue-multiline.min.js
index 910ffa5002..e9d542ea71 100644
--- a/public/js/atk-vue-multiline.min.js
+++ b/public/js/atk-vue-multiline.min.js
@@ -1,2 +1,2 @@
-"use strict";(self.webpackChunkatk=self.webpackChunkatk||[]).push([[71],{77590:(e,t,n)=>{n.r(t),n.d(t,{default:()=>d});n(70501),n(23552),n(93714),n(37618),n(22625),n(70540),n(70984),n(15829),n(37322);var i=n(21145),o=n.n(i),l=n(86157);var a=n(30901),s=n(49880);const r={name:"AtkMultilineCell",template:'\n ',components:{AtkMultilineReadonly:{name:"AtkMultilineReadonly",template:"{{readOnlyValue}}
",props:["readOnlyValue"]},AtkMultilineTextarea:{name:"AtkMultilineTextarea",template:'',props:["modelValue"],emits:["update:modelValue"],methods:{onInput:function(e){this.$emit("update:modelValue",e.target.value)}}},AtkDatePicker:a.Z,AtkLookup:s.Z},props:["cellData","fieldValue"],data:function(){return{fieldName:this.cellData.name,type:this.cellData.type,inputName:"-"+this.cellData.name,inputValue:this.fieldValue}},emits:["updateValue"],methods:{getComponent:function(){return this.cellData.definition.component},getComponentProps:function(){return"AtkMultilineReadonly"===this.getComponent()?{readOnlyValue:this.fieldValue}:this.cellData.definition.componentProps},onInput:function(e){this.inputValue=e,this.$emit("updateValue",this.fieldName,this.inputValue)}}},u={name:"AtkMultilineHeader",template:'\n \n \n \n \n \n {{getErrorMsg(column)}}\n \n \n \n {{caption}} \n \n \n \n \n \n \n {{column.caption}}
\n \n {{getErrorMsg(column)}} \n
\n \n \n ',props:["fields","selectionState","errors","caption"],data:function(){return{columns:this.fields,isDeleteAll:!1}},methods:{filterVisibleColumns:function(e){return e.filter((e=>e.isVisible))},onToggleDeleteAll:function(){this.$nextTick((()=>{l.Z.eventBus.emit(this.$root.$el.parentElement.id+"-toggle-delete-all",{isOn:this.$refs.check.checked})}))},getTextAlign:function(e){let t="left";if(!e.isEditable)switch(e.type){case"integer":case"float":case"atk4_money":t="right"}return t},getVisibleColumns:function(){let e=1;for(const t of this.columns)e=t.isVisible?e+1:e;return e},hasError:function(){return Object.keys(this.errors).length>0},hasCaption:function(){return this.caption},getErrorMsg:function(e){if(this.hasError()){const t=Object.keys(this.errors);for(const n of t){const t=this.errors[n].filter((t=>t.name===e.name));if(t.length>0)return t[0].msg}}return null}},computed:{isIndeterminate:function(){return"indeterminate"===this.selectionState},isChecked:function(){return"on"===this.selectionState}}},d={name:"AtkMultiline",template:'\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n
',props:{data:Object},data:function(){return{form:this.data.formName,valueJson:this.data.inputValue,name:this.data.inputName,rowData:[],fieldData:this.data.fields||[],eventFields:this.data.eventFields||[],deletables:[],hasChangeCb:this.data.hasChangeCb,errors:{},caption:this.data.caption||null,tableProp:{basic:!1,celled:!1,collapsing:!1,stackable:!1,inverted:!1,...this.data.tableProps}}},components:{AtkMultilineHeader:u,AtkMultilineBody:{name:"AtkMultilineBody",template:'\n \n \n ',props:["fieldDefs","rowData","deletables","errors"],data:function(){return{fields:this.fieldDefs}},created:function(){},components:{AtkMultilineRow:{name:"AtkMultilineRow",template:'\n \n \n \n \n \n \n \n ',props:["fields","rowId","isDeletable","rowValues","errors"],data:function(){return{columns:this.fields}},components:{AtkMultilineCell:r},computed:{toDelete:{get:function(){return this.isDeletable},set:function(e){return e}}},emits:["onTabLastColumn"],methods:{filterVisibleColumns:function(e){return e.filter((e=>e.isVisible))},onTab:function(e){e===this.columns.filter((e=>e.isEditable)).length-1&&this.$emit("onTabLastColumn")},hasColumnError:function(e){return this.errors.some((t=>e.name===t.name))},onToggleDelete:function(e){l.Z.eventBus.emit(this.$root.$el.parentElement.id+"-toggle-delete",{rowId:this.rowId})},onUpdateValue:function(e,t){l.Z.eventBus.emit(this.$root.$el.parentElement.id+"-update-row",{rowId:this.rowId,fieldName:e,value:t})},getValue:function(e){return this.rowValues[e.name]||e.default}}}},computed:{rows:function(){return this.rowData}},emits:["onTabLastRow"],methods:{onTabLastColumn:function(e){e+1===this.rowData.length&&this.$emit("onTabLastRow")},isDeletableRow:function(e){return this.deletables.includes(e.__atkml)},getRowErrors:function(e){return this.errors[e]??[]}}}},mounted:function(){this.rowData=this.buildRowData(this.valueJson??"[]"),this.updateInputValue(),l.Z.eventBus.on(this.$root.$el.parentElement.id+"-update-row",(e=>{this.onUpdate(e.rowId,e.fieldName,e.value)})),l.Z.eventBus.on(this.$root.$el.parentElement.id+"-toggle-delete",(e=>{const t=this.deletables.indexOf(e.rowId);-1!==t?this.deletables.splice(t,1):this.deletables.push(e.rowId)})),l.Z.eventBus.on(this.$root.$el.parentElement.id+"-toggle-delete-all",(e=>{if(this.deletables=[],e.isOn)for(const e of this.rowData)this.deletables.push(e.__atkml)})),l.Z.eventBus.on(this.$root.$el.parentElement.id+"-multiline-rows-error",(e=>{this.errors={...e.errors}}))},methods:{onTabLastRow:function(){!this.isLimitReached&&this.data.addOnTab&&this.onAdd()},onAdd:function(){const e=this.createRow(this.data.fields);this.rowData.push(e),this.updateInputValue(),this.data.afterAdd&&"function"==typeof this.data.afterAdd&&this.data.afterAdd(JSON.parse(this.valueJson)),this.fetchExpression(e.__atkml),this.fetchOnUpdateAction()},onDelete:function(){for(const e of this.deletables)this.deleteRow(e);this.deletables=[],this.updateInputValue(),this.fetchOnUpdateAction(),this.data.afterDelete&&"function"==typeof this.data.afterDelete&&this.data.afterDelete(JSON.parse(this.valueJson))},onUpdate:function(e,t,n){this.updateFieldInRow(e,t,n),this.clearError(e,t),this.updateInputValue(),this.onUpdate.debouncedFx||(this.onUpdate.debouncedFx=l.Z.createDebouncedFx((()=>{this.onUpdate.debouncedFx=null,this.fetchExpression(e),this.fetchOnUpdateAction(t)}),250)),this.onUpdate.debouncedFx.call(this)},createRow:function(e){const t={};for(const n of e)t[n.name]=n.default;return t.__atkml=this.getUUID(),t},deleteRow:function(e){this.rowData.splice(this.rowData.findIndex((t=>t.__atkml===e)),1),delete this.errors[e]},updateFieldInRow:function(e,t,n){for(const i of this.rowData)i.__atkml===e&&(i[t]=n)},clearError:function(e,t){if(e in this.errors){const n=this.errors[e].filter((e=>e.name!==t));this.errors[e]=[...n],0===n.length&&delete this.errors[e]}},updateInputValue:function(){this.valueJson=JSON.stringify(this.rowData)},buildRowData:function(e){const t=JSON.parse(e);for(const e of t)e.__atkml=this.getUUID();return t},hasExpression:function(){return this.fieldData.some((e=>e.isExpr))},fetchOnUpdateAction:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.hasChangeCb&&(null===e||this.eventFields.includes(e))&&o()(this.$refs.addButton.$el).api({on:"now",url:this.data.url,method:"POST",data:{__atkml_action:"on-change",rows:this.valueJson}})},postData:async function(e){const t={...e},n=this.$refs.addButton.$el;t.__atkml_action="update-row";try{return await l.Z.apiService.suiFetch(this.data.url,{data:t,method:"POST",stateContext:n})}catch(e){console.error(e)}},fetchExpression:async function(e){if(this.hasExpression()){const t=this.findRow(e);if(t){const n=await this.postData(t);if(n.expressions){const t=Object.keys(n.expressions);for(const i of t)this.updateFieldInRow(e,i,n.expressions[i]);this.updateInputValue()}}}},findRow:function(e){return this.rowData.find((t=>t.__atkml===e))},getInputElement:function(){return this.$refs.atkmlInput},getUUID:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replaceAll(/[xy]/g,(e=>{const t=Math.floor(16*Math.random());return("x"===e?t:11&t).toString(16)}))}},computed:{getSpan:function(){return this.fieldData.length-1},getDeletables:function(){return this.deletables},getMainToggleState:function(){let e="off";return this.deletables.length>0&&(e=this.deletables.length===this.rowData.length?"on":"indeterminate"),e},isDeleteDisable:function(){return 0===this.deletables.length},isLimitReached:function(){return 0!==this.data.rowLimit&&this.data.rowLimit{n.d(t,{Z:()=>i});const i={name:"AtkDatePicker",template:'\n ',props:["config","modelValue"],data:function(){const e={...this.config};return e.defaultDate&&!this.modelValue?e.defaultDate=new Date:this.modelValue&&(e.defaultDate=this.modelValue),e.locale||(e.locale=flatpickr.l10ns.default),{flatPickr:e}},emits:["setDefault"],mounted:function(){!this.modelValue&&this.flatPickr.defaultDate&&this.onUpdate(this.flatPickr.defaultDate instanceof Date?flatpickr.formatDate(this.config.defaultDate,this.config.dateFormat):this.flatPickr.defaultDate)},methods:{getFlatpickrValue:function(e){return e},onUpdate:function(e){this.$emit("update:modelValue",e)}}}},49880:(e,t,n)=>{n.d(t,{Z:()=>i});n(93714),n(22625),n(70984);const i={name:"AtkLookup",template:'\n ',props:["config","modelValue","optionalValue"],data:function(){const{url:e,reference:t,...n}=this.config;return n.selection=!0,{dropdownProps:n,url:e||null,field:t,query:"",temp:""}},mounted:function(){this.optionalValue&&(this.dropdownProps.options=Array.isArray(this.optionalValue)?this.optionalValue:[this.optionalValue])},emits:["update:modelValue"],methods:{getDropdownValue:function(e){return this.dropdownProps.options.find((t=>t.value===e))},onUpdate:function(e){this.$emit("update:modelValue",e.value)}}}},37618:(e,t,n)=>{var i=n(22189),o=n(37509).some;i({target:"AsyncIterator",proto:!0,real:!0},{some:function(e){return o(this,e)}})},15829:(e,t,n)=>{var i=n(22189),o=n(31781),l=n(46324),a=n(18874),s=n(91051);i({target:"Iterator",proto:!0,real:!0},{some:function(e){a(this),l(e);var t=s(this),n=0;return o(t,(function(t,i){if(e(t,n++))return i()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})}}]);
+"use strict";(self.webpackChunkatk=self.webpackChunkatk||[]).push([[71],{77590:(e,t,n)=>{n.r(t),n.d(t,{default:()=>d});n(70501),n(23552),n(93714),n(37618),n(22625),n(70540),n(70984),n(15829),n(37322);var i=n(21145),o=n.n(i),l=n(86157);var a=n(30901),s=n(49880);const r={name:"AtkMultilineCell",template:'\n ',components:{AtkMultilineReadonly:{name:"AtkMultilineReadonly",template:"{{readOnlyValue}}
",props:["readOnlyValue"]},AtkMultilineTextarea:{name:"AtkMultilineTextarea",template:'',props:["modelValue"],emits:["update:modelValue"],methods:{onInput:function(e){this.$emit("update:modelValue",e.target.value)}}},AtkDatePicker:a.Z,AtkLookup:s.Z},props:["cellData","fieldValue"],data:function(){return{fieldName:this.cellData.name,type:this.cellData.type,inputName:"-"+this.cellData.name,inputValue:this.fieldValue}},emits:["updateValue"],methods:{getComponent:function(){return this.cellData.definition.component},getComponentProps:function(){return"AtkMultilineReadonly"===this.getComponent()?{readOnlyValue:this.fieldValue}:this.cellData.definition.componentProps},onInput:function(e){this.inputValue=e,this.$emit("updateValue",this.fieldName,this.inputValue)}}},u={name:"AtkMultilineHeader",template:'\n \n \n \n \n \n {{getErrorMsg(column)}}\n \n \n \n {{caption}} \n \n \n \n \n \n \n {{column.caption}}
\n \n {{getErrorMsg(column)}} \n
\n \n \n ',props:["fields","selectionState","errors","caption"],data:function(){return{columns:this.fields,isDeleteAll:!1}},methods:{filterVisibleColumns:function(e){return e.filter((e=>e.isVisible))},onToggleDeleteAll:function(){this.$nextTick((()=>{l.Z.eventBus.emit(this.$root.$el.parentElement.id+"-toggle-delete-all",{isOn:this.$refs.check.checked})}))},getTextAlign:function(e){let t="left";if(!e.isEditable)switch(e.type){case"integer":case"float":case"atk4_money":t="right"}return t},getVisibleColumns:function(){let e=1;for(const t of this.columns)e=t.isVisible?e+1:e;return e},hasError:function(){return Object.keys(this.errors).length>0},hasCaption:function(){return this.caption},getErrorMsg:function(e){if(this.hasError()){const t=Object.keys(this.errors);for(const n of t){const t=this.errors[n].filter((t=>t.name===e.name));if(t.length>0)return t[0].msg}}return null}},computed:{isIndeterminate:function(){return"indeterminate"===this.selectionState},isChecked:function(){return"on"===this.selectionState}}},d={name:"AtkMultiline",template:'\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n
',props:{data:Object},data:function(){return{form:this.data.formName,valueJson:this.data.inputValue,name:this.data.inputName,rowData:[],fieldData:this.data.fields||[],eventFields:this.data.eventFields||[],deletables:[],hasChangeCb:this.data.hasChangeCb,errors:{},caption:this.data.caption||null,tableProp:{compact:"very",basic:"very",unstackable:!0,celled:!1,collapsing:!1,inverted:!1,...this.data.tableProps}}},components:{AtkMultilineHeader:u,AtkMultilineBody:{name:"AtkMultilineBody",template:'\n \n \n ',props:["fieldDefs","rowData","deletables","errors"],data:function(){return{fields:this.fieldDefs}},created:function(){},components:{AtkMultilineRow:{name:"AtkMultilineRow",template:'\n \n \n \n \n \n \n \n ',props:["fields","rowId","isDeletable","rowValues","errors"],data:function(){return{columns:this.fields}},components:{AtkMultilineCell:r},computed:{toDelete:{get:function(){return this.isDeletable},set:function(e){return e}}},emits:["onTabLastColumn"],methods:{filterVisibleColumns:function(e){return e.filter((e=>e.isVisible))},onTab:function(e){e===this.columns.filter((e=>e.isEditable)).length-1&&this.$emit("onTabLastColumn")},hasColumnError:function(e){return this.errors.some((t=>e.name===t.name))},onToggleDelete:function(e){l.Z.eventBus.emit(this.$root.$el.parentElement.id+"-toggle-delete",{rowId:this.rowId})},onUpdateValue:function(e,t){l.Z.eventBus.emit(this.$root.$el.parentElement.id+"-update-row",{rowId:this.rowId,fieldName:e,value:t})},getValue:function(e){return this.rowValues[e.name]||e.default}}}},computed:{rows:function(){return this.rowData}},emits:["onTabLastRow"],methods:{onTabLastColumn:function(e){e+1===this.rowData.length&&this.$emit("onTabLastRow")},isDeletableRow:function(e){return this.deletables.includes(e.__atkml)},getRowErrors:function(e){return this.errors[e]??[]}}}},mounted:function(){this.rowData=this.buildRowData(this.valueJson??"[]"),this.updateInputValue(),l.Z.eventBus.on(this.$root.$el.parentElement.id+"-update-row",(e=>{this.onUpdate(e.rowId,e.fieldName,e.value)})),l.Z.eventBus.on(this.$root.$el.parentElement.id+"-toggle-delete",(e=>{const t=this.deletables.indexOf(e.rowId);-1!==t?this.deletables.splice(t,1):this.deletables.push(e.rowId)})),l.Z.eventBus.on(this.$root.$el.parentElement.id+"-toggle-delete-all",(e=>{if(this.deletables=[],e.isOn)for(const e of this.rowData)this.deletables.push(e.__atkml)})),l.Z.eventBus.on(this.$root.$el.parentElement.id+"-multiline-rows-error",(e=>{this.errors={...e.errors}}))},methods:{onTabLastRow:function(){!this.isLimitReached&&this.data.addOnTab&&this.onAdd()},onAdd:function(){const e=this.createRow(this.data.fields);this.rowData.push(e),this.updateInputValue(),this.data.afterAdd&&"function"==typeof this.data.afterAdd&&this.data.afterAdd(JSON.parse(this.valueJson)),this.fetchExpression(e.__atkml),this.fetchOnUpdateAction()},onDelete:function(){for(const e of this.deletables)this.deleteRow(e);this.deletables=[],this.updateInputValue(),this.fetchOnUpdateAction(),this.data.afterDelete&&"function"==typeof this.data.afterDelete&&this.data.afterDelete(JSON.parse(this.valueJson))},onUpdate:function(e,t,n){this.updateFieldInRow(e,t,n),this.clearError(e,t),this.updateInputValue(),this.onUpdate.debouncedFx||(this.onUpdate.debouncedFx=l.Z.createDebouncedFx((()=>{this.onUpdate.debouncedFx=null,this.fetchExpression(e),this.fetchOnUpdateAction(t)}),250)),this.onUpdate.debouncedFx.call(this)},createRow:function(e){const t={};for(const n of e)t[n.name]=n.default;return t.__atkml=this.getUUID(),t},deleteRow:function(e){this.rowData.splice(this.rowData.findIndex((t=>t.__atkml===e)),1),delete this.errors[e]},updateFieldInRow:function(e,t,n){for(const i of this.rowData)i.__atkml===e&&(i[t]=n)},clearError:function(e,t){if(e in this.errors){const n=this.errors[e].filter((e=>e.name!==t));this.errors[e]=[...n],0===n.length&&delete this.errors[e]}},updateInputValue:function(){this.valueJson=JSON.stringify(this.rowData)},buildRowData:function(e){const t=JSON.parse(e);for(const e of t)e.__atkml=this.getUUID();return t},hasExpression:function(){return this.fieldData.some((e=>e.isExpr))},fetchOnUpdateAction:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.hasChangeCb&&(null===e||this.eventFields.includes(e))&&o()(this.$refs.addButton.$el).api({on:"now",url:this.data.url,method:"POST",data:{__atkml_action:"on-change",rows:this.valueJson}})},postData:async function(e){const t={...e},n=this.$refs.addButton.$el;t.__atkml_action="update-row";try{return await l.Z.apiService.suiFetch(this.data.url,{data:t,method:"POST",stateContext:n})}catch(e){console.error(e)}},fetchExpression:async function(e){if(this.hasExpression()){const t=this.findRow(e);if(t){const n=await this.postData(t);if(n.expressions){const t=Object.keys(n.expressions);for(const i of t)this.updateFieldInRow(e,i,n.expressions[i]);this.updateInputValue()}}}},findRow:function(e){return this.rowData.find((t=>t.__atkml===e))},getInputElement:function(){return this.$refs.atkmlInput},getUUID:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replaceAll(/[xy]/g,(e=>{const t=Math.floor(16*Math.random());return("x"===e?t:11&t).toString(16)}))}},computed:{getSpan:function(){return this.fieldData.length-1},getDeletables:function(){return this.deletables},getMainToggleState:function(){let e="off";return this.deletables.length>0&&(e=this.deletables.length===this.rowData.length?"on":"indeterminate"),e},isDeleteDisable:function(){return 0===this.deletables.length},isLimitReached:function(){return 0!==this.data.rowLimit&&this.data.rowLimit{n.d(t,{Z:()=>i});const i={name:"AtkDatePicker",template:'\n ',props:["config","modelValue"],data:function(){const e={...this.config};return e.defaultDate&&!this.modelValue?e.defaultDate=new Date:this.modelValue&&(e.defaultDate=this.modelValue),e.locale||(e.locale=flatpickr.l10ns.default),{flatPickr:e}},emits:["setDefault"],mounted:function(){!this.modelValue&&this.flatPickr.defaultDate&&this.onUpdate(this.flatPickr.defaultDate instanceof Date?flatpickr.formatDate(this.config.defaultDate,this.config.dateFormat):this.flatPickr.defaultDate)},methods:{getFlatpickrValue:function(e){return e},onUpdate:function(e){this.$emit("update:modelValue",e)}}}},49880:(e,t,n)=>{n.d(t,{Z:()=>i});n(93714),n(22625),n(70984);const i={name:"AtkLookup",template:'\n ',props:["config","modelValue","optionalValue"],data:function(){const{url:e,reference:t,...n}=this.config;return n.selection=!0,{dropdownProps:n,url:e||null,field:t,query:"",temp:""}},mounted:function(){this.optionalValue&&(this.dropdownProps.options=Array.isArray(this.optionalValue)?this.optionalValue:[this.optionalValue])},emits:["update:modelValue"],methods:{getDropdownValue:function(e){return this.dropdownProps.options.find((t=>t.value===e))},onUpdate:function(e){this.$emit("update:modelValue",e.value)}}}},37618:(e,t,n)=>{var i=n(22189),o=n(37509).some;i({target:"AsyncIterator",proto:!0,real:!0},{some:function(e){return o(this,e)}})},15829:(e,t,n)=>{var i=n(22189),o=n(31781),l=n(46324),a=n(18874),s=n(91051);i({target:"Iterator",proto:!0,real:!0},{some:function(e){a(this),l(e);var t=s(this),n=0;return o(t,(function(t,i){if(e(t,n++))return i()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})}}]);
//# sourceMappingURL=atk-vue-multiline.min.js.map
\ No newline at end of file
diff --git a/public/js/atk-vue-multiline.min.js.map b/public/js/atk-vue-multiline.min.js.map
index 885d5529ce..bde6c8978b 100644
--- a/public/js/atk-vue-multiline.min.js.map
+++ b/public/js/atk-vue-multiline.min.js.map
@@ -1 +1 @@
-{"version":3,"file":"js/atk-vue-multiline.min.js","mappings":"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","sources":["webpack://atk/./src/vue-components/multiline/multiline-cell.component.js","webpack://atk/./src/vue-components/multiline/multiline-readonly.component.js","webpack://atk/./src/vue-components/multiline/multiline-textarea.component.js","webpack://atk/./src/vue-components/multiline/multiline-header.component.js","webpack://atk/./src/vue-components/multiline/multiline.component.js","webpack://atk/./src/vue-components/multiline/multiline-body.component.js","webpack://atk/./src/vue-components/multiline/multiline-row.component.js","webpack://atk/./src/vue-components/share/atk-date-picker.js","webpack://atk/./src/vue-components/share/atk-lookup.js","webpack://atk/./node_modules/core-js/modules/esnext.async-iterator.some.js","webpack://atk/./node_modules/core-js/modules/esnext.iterator.some.js"],"sourcesContent":["import multilineReadonly from './multiline-readonly.component';\nimport multilineTextarea from './multiline-textarea.component';\nimport atkDatePicker from '../share/atk-date-picker';\nimport atkLookup from '../share/atk-lookup';\n\nexport default {\n name: 'AtkMultilineCell',\n template: `\n `,\n components: {\n AtkMultilineReadonly: multilineReadonly,\n AtkMultilineTextarea: multilineTextarea,\n AtkDatePicker: atkDatePicker,\n AtkLookup: atkLookup,\n },\n props: ['cellData', 'fieldValue'],\n data: function () {\n return {\n fieldName: this.cellData.name,\n type: this.cellData.type,\n inputName: '-' + this.cellData.name,\n inputValue: this.fieldValue,\n };\n },\n emits: ['updateValue'],\n methods: {\n getComponent: function () {\n return this.cellData.definition.component;\n },\n getComponentProps: function () {\n if (this.getComponent() === 'AtkMultilineReadonly') {\n return { readOnlyValue: this.fieldValue };\n }\n\n return this.cellData.definition.componentProps;\n },\n onInput: function (value) {\n this.inputValue = value;\n this.$emit('updateValue', this.fieldName, this.inputValue);\n },\n },\n};\n","/**\n * Simply display a readonly value.\n */\nexport default {\n name: 'AtkMultilineReadonly',\n template: '{{readOnlyValue}}
',\n props: ['readOnlyValue'],\n};\n","export default {\n name: 'AtkMultilineTextarea',\n template: '',\n props: ['modelValue'],\n emits: ['update:modelValue'],\n methods: {\n onInput: function (event) {\n this.$emit('update:modelValue', event.target.value);\n },\n },\n};\n","import atk from 'atk';\n\nexport default {\n name: 'AtkMultilineHeader',\n template: `\n \n \n \n \n \n {{getErrorMsg(column)}}\n \n \n \n {{caption}} \n \n \n \n \n \n \n {{column.caption}}
\n \n {{getErrorMsg(column)}} \n
\n \n \n `,\n props: ['fields', 'selectionState', 'errors', 'caption'],\n data: function () {\n return { columns: this.fields, isDeleteAll: false };\n },\n methods: {\n filterVisibleColumns: function (columns) {\n return columns.filter((v) => v.isVisible);\n },\n onToggleDeleteAll: function () {\n this.$nextTick(() => {\n atk.eventBus.emit(this.$root.$el.parentElement.id + '-toggle-delete-all', { isOn: this.$refs.check.checked });\n });\n },\n getTextAlign: function (column) {\n let align = 'left';\n if (!column.isEditable) {\n switch (column.type) {\n case 'integer':\n case 'float':\n case 'atk4_money': {\n align = 'right';\n\n break;\n }\n }\n }\n\n return align;\n },\n getVisibleColumns: function () {\n let count = 1; // add deletable column;\n for (const field of this.columns) {\n count = field.isVisible ? count + 1 : count;\n }\n\n return count;\n },\n hasError: function () {\n return Object.keys(this.errors).length > 0;\n },\n hasCaption: function () {\n return this.caption;\n },\n getErrorMsg: function (column) {\n if (this.hasError()) {\n const rows = Object.keys(this.errors);\n for (const row of rows) {\n const error = this.errors[row].filter((col) => col.name === column.name);\n if (error.length > 0) {\n return error[0].msg;\n }\n }\n }\n\n return null;\n },\n },\n computed: {\n isIndeterminate: function () {\n return this.selectionState === 'indeterminate';\n },\n isChecked: function () {\n return this.selectionState === 'on';\n },\n },\n};\n","import $ from 'external/jquery';\nimport atk from 'atk';\nimport multilineBody from './multiline-body.component';\nimport multilineHeader from './multiline-header.component';\n\nexport default {\n name: 'AtkMultiline',\n template: `\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n
`,\n props: {\n data: Object,\n },\n data: function () {\n const tableDefault = {\n basic: false,\n celled: false,\n collapsing: false,\n stackable: false,\n inverted: false,\n };\n\n return {\n form: this.data.formName,\n valueJson: this.data.inputValue,\n name: this.data.inputName,\n rowData: [],\n fieldData: this.data.fields || [],\n eventFields: this.data.eventFields || [],\n deletables: [],\n hasChangeCb: this.data.hasChangeCb,\n errors: {},\n caption: this.data.caption || null,\n tableProp: { ...tableDefault, ...this.data.tableProps },\n };\n },\n components: {\n AtkMultilineHeader: multilineHeader,\n AtkMultilineBody: multilineBody,\n },\n mounted: function () {\n this.rowData = this.buildRowData(this.valueJson ?? '[]');\n this.updateInputValue();\n\n atk.eventBus.on(this.$root.$el.parentElement.id + '-update-row', (payload) => {\n this.onUpdate(payload.rowId, payload.fieldName, payload.value);\n });\n\n atk.eventBus.on(this.$root.$el.parentElement.id + '-toggle-delete', (payload) => {\n const i = this.deletables.indexOf(payload.rowId);\n if (i !== -1) {\n this.deletables.splice(i, 1);\n } else {\n this.deletables.push(payload.rowId);\n }\n });\n\n atk.eventBus.on(this.$root.$el.parentElement.id + '-toggle-delete-all', (payload) => {\n this.deletables = [];\n if (payload.isOn) {\n for (const row of this.rowData) {\n this.deletables.push(row.__atkml);\n }\n }\n });\n\n atk.eventBus.on(this.$root.$el.parentElement.id + '-multiline-rows-error', (payload) => {\n this.errors = { ...payload.errors };\n });\n },\n methods: {\n onTabLastRow: function () {\n if (!this.isLimitReached && this.data.addOnTab) {\n this.onAdd();\n }\n },\n onAdd: function () {\n const newRow = this.createRow(this.data.fields);\n this.rowData.push(newRow);\n this.updateInputValue();\n if (this.data.afterAdd && typeof this.data.afterAdd === 'function') {\n this.data.afterAdd(JSON.parse(this.valueJson));\n }\n this.fetchExpression(newRow.__atkml);\n this.fetchOnUpdateAction();\n },\n onDelete: function () {\n for (const atkmlId of this.deletables) {\n this.deleteRow(atkmlId);\n }\n this.deletables = [];\n this.updateInputValue();\n this.fetchOnUpdateAction();\n if (this.data.afterDelete && typeof this.data.afterDelete === 'function') {\n this.data.afterDelete(JSON.parse(this.valueJson));\n }\n },\n onUpdate: function (atkmlId, fieldName, value) {\n this.updateFieldInRow(atkmlId, fieldName, value);\n this.clearError(atkmlId, fieldName);\n this.updateInputValue();\n\n if (!this.onUpdate.debouncedFx) {\n this.onUpdate.debouncedFx = atk.createDebouncedFx(() => {\n this.onUpdate.debouncedFx = null;\n this.fetchExpression(atkmlId);\n this.fetchOnUpdateAction(fieldName);\n }, 250);\n }\n this.onUpdate.debouncedFx.call(this);\n },\n /**\n * Creates a new row of data and\n * set values to default if available.\n */\n createRow: function (fields) {\n const row = {};\n for (const field of fields) {\n row[field.name] = field.default;\n }\n row.__atkml = this.getUUID();\n\n return row;\n },\n deleteRow: function (atkmlId) {\n this.rowData.splice(this.rowData.findIndex((row) => row.__atkml === atkmlId), 1);\n delete this.errors[atkmlId];\n },\n /**\n * Update the value of the field in rowData.\n */\n updateFieldInRow: function (atkmlId, fieldName, value) {\n for (const row of this.rowData) {\n if (row.__atkml === atkmlId) {\n row[fieldName] = value;\n }\n }\n },\n clearError: function (atkmlId, fieldName) {\n if (atkmlId in this.errors) {\n const errors = this.errors[atkmlId].filter((error) => error.name !== fieldName);\n this.errors[atkmlId] = [...errors];\n if (errors.length === 0) {\n delete this.errors[atkmlId];\n }\n }\n },\n /**\n * Update Multi-line Form input with all rowData values\n * as JSON string.\n */\n updateInputValue: function () {\n this.valueJson = JSON.stringify(this.rowData);\n },\n /**\n * Build rowData from JSON string.\n */\n buildRowData: function (jsonValue) {\n const rows = JSON.parse(jsonValue);\n for (const row of rows) {\n row.__atkml = this.getUUID();\n }\n\n return rows;\n },\n /**\n * Check if one of the field use expression.\n */\n hasExpression: function () {\n return this.fieldData.some((field) => field.isExpr);\n },\n /**\n * Send on change action to server.\n */\n fetchOnUpdateAction: function (fieldName = null) {\n if (this.hasChangeCb && (fieldName === null || this.eventFields.includes(fieldName))) {\n $(this.$refs.addButton.$el).api({\n on: 'now',\n url: this.data.url,\n method: 'POST',\n data: { __atkml_action: 'on-change', rows: this.valueJson },\n });\n }\n },\n postData: async function (row) {\n const data = { ...row };\n const context = this.$refs.addButton.$el;\n data.__atkml_action = 'update-row';\n try {\n return await atk.apiService.suiFetch(this.data.url, { data: data, method: 'POST', stateContext: context });\n } catch (e) {\n console.error(e);\n }\n },\n /**\n * Get expressions values from server.\n */\n fetchExpression: async function (atkmlId) {\n if (this.hasExpression()) {\n const row = this.findRow(atkmlId);\n // server will return expression field/value if defined\n if (row) {\n const resp = await this.postData(row);\n if (resp.expressions) {\n const fields = Object.keys(resp.expressions);\n for (const field of fields) {\n this.updateFieldInRow(atkmlId, field, resp.expressions[field]);\n }\n this.updateInputValue();\n }\n }\n }\n },\n findRow: function (atkmlId) {\n return this.rowData.find((row) => row.__atkml === atkmlId);\n },\n getInputElement: function () {\n return this.$refs.atkmlInput;\n },\n /**\n * UUID v4 generator.\n */\n getUUID: function () {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replaceAll(/[xy]/g, (c) => {\n const r = Math.floor(Math.random() * 16);\n const v = c === 'x' ? r : r & (0x3 | 0x8); // eslint-disable-line no-bitwise\n\n return v.toString(16);\n });\n },\n },\n computed: {\n getSpan: function () {\n return this.fieldData.length - 1;\n },\n getDeletables: function () {\n return this.deletables;\n },\n /**\n * Return Delete all checkbox state base on\n * deletables entries.\n */\n getMainToggleState: function () {\n let res = 'off';\n if (this.deletables.length > 0) {\n res = this.deletables.length === this.rowData.length\n ? 'on'\n : 'indeterminate';\n }\n\n return res;\n },\n isDeleteDisable: function () {\n return this.deletables.length === 0;\n },\n isLimitReached: function () {\n if (this.data.rowLimit === 0) {\n return false;\n }\n\n return this.data.rowLimit < this.rowData.length + 1;\n },\n },\n};\n","import multilineRow from './multiline-row.component';\n\nexport default {\n name: 'AtkMultilineBody',\n template: `\n \n \n `,\n props: ['fieldDefs', 'rowData', 'deletables', 'errors'],\n data: function () {\n return { fields: this.fieldDefs };\n },\n created: function () {},\n components: {\n AtkMultilineRow: multilineRow,\n },\n computed: {\n rows: function () {\n return this.rowData;\n },\n },\n emits: ['onTabLastRow'],\n methods: {\n onTabLastColumn: function (rowIndex) {\n if (rowIndex + 1 === this.rowData.length) {\n this.$emit('onTabLastRow');\n }\n },\n isDeletableRow: function (row) {\n return this.deletables.includes(row.__atkml);\n },\n getRowErrors: function (rowId) {\n return this.errors[rowId] ?? [];\n },\n },\n};\n","import atk from 'atk';\nimport multilineCell from './multiline-cell.component';\n\n/**\n * This will create a table td element using SuiTableCell.\n * The td element is created only if column as set isVisible = true;\n * The td element will add a multiline cell element.\n * the multiline cell will set it's own template component depending on the fieldType.\n * getValue\n */\nexport default {\n name: 'AtkMultilineRow',\n template: `\n \n \n \n \n \n \n \n `,\n props: ['fields', 'rowId', 'isDeletable', 'rowValues', 'errors'],\n data: function () {\n return { columns: this.fields };\n },\n components: {\n AtkMultilineCell: multilineCell,\n },\n computed: {\n /**\n * toDelete is bind by v-model, thus we need a setter for\n * computed property to work.\n * When isDeletable is pass, will set checkbox according to it's value.\n */\n toDelete: {\n get: function () {\n return this.isDeletable;\n },\n set: function (v) {\n return v;\n },\n },\n },\n emits: ['onTabLastColumn'],\n methods: {\n filterVisibleColumns: function (columns) {\n return columns.filter((v) => v.isVisible);\n },\n onTab: function (columnIndex) {\n if (columnIndex === this.columns.filter((column) => column.isEditable).length - 1) {\n this.$emit('onTabLastColumn');\n }\n },\n hasColumnError: function (column) {\n return this.errors.some((v) => column.name === v.name);\n },\n onToggleDelete: function (e) {\n atk.eventBus.emit(this.$root.$el.parentElement.id + '-toggle-delete', { rowId: this.rowId });\n },\n onUpdateValue: function (fieldName, value) {\n atk.eventBus.emit(this.$root.$el.parentElement.id + '-update-row', { rowId: this.rowId, fieldName: fieldName, value: value });\n },\n getValue: function (column) {\n return this.rowValues[column.name] || column.default;\n },\n },\n};\n","/* global flatpickr */ // loaded after main JS\n\n/**\n * Wrapper for vue-flatpickr-component component.\n *\n * https://github.com/ankurk91/vue-flatpickr-component\n *\n * Properties:\n * config: Any of Flatpickr options\n */\nexport default {\n name: 'AtkDatePicker',\n template: `\n `,\n props: ['config', 'modelValue'],\n data: function () {\n const config = { ...this.config };\n\n if (config.defaultDate && !this.modelValue) {\n config.defaultDate = new Date();\n } else if (this.modelValue) {\n config.defaultDate = this.modelValue;\n }\n\n if (!config.locale) {\n config.locale = flatpickr.l10ns.default;\n }\n\n return {\n flatPickr: config,\n };\n },\n emits: ['setDefault'],\n mounted: function () {\n // if value is not set but default date is, then emit proper string value to parent\n if (!this.modelValue && this.flatPickr.defaultDate) {\n this.onUpdate(\n this.flatPickr.defaultDate instanceof Date\n ? flatpickr.formatDate(this.config.defaultDate, this.config.dateFormat)\n : this.flatPickr.defaultDate\n );\n }\n },\n methods: {\n getFlatpickrValue: function (value) {\n return value;\n },\n onUpdate: function (value) {\n this.$emit('update:modelValue', value);\n },\n },\n};\n","/**\n * Wrapper for Fomantic-UI dropdown component into a lookup component.\n *\n * Properties:\n * config:\n * reference: the reference field name associate with model or hasOne name. This field name will be sent along with URL callback parameter as of 'field=name'.\n * Note: The remaining config object may contain any or SuiDropdown { props: value } pair.\n *\n * modelValue: The selected value.\n * optionalValue: The initial list of options for the dropdown.\n */\nexport default {\n name: 'AtkLookup',\n template: `\n `,\n props: ['config', 'modelValue', 'optionalValue'],\n data: function () {\n const {\n url, reference, ...otherConfig\n } = this.config;\n otherConfig.selection = true;\n\n return {\n dropdownProps: otherConfig,\n url: url || null,\n field: reference,\n query: '',\n temp: '',\n };\n },\n mounted: function () {\n if (this.optionalValue) {\n this.dropdownProps.options = Array.isArray(this.optionalValue) ? this.optionalValue : [this.optionalValue];\n }\n },\n emits: ['update:modelValue'],\n methods: {\n getDropdownValue: function (value) {\n return this.dropdownProps.options.find((item) => item.value === value);\n },\n onUpdate: function (value) {\n this.$emit('update:modelValue', value.value);\n },\n },\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/async-iterator-iteration').some;\n\n// `AsyncIterator.prototype.some` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n some: function some(predicate) {\n return $some(this, predicate);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.some` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n some: function some(predicate) {\n anObject(this);\n aCallable(predicate);\n var record = getIteratorDirect(this);\n var counter = 0;\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n"],"names":["name","template","components","AtkMultilineReadonly","props","AtkMultilineTextarea","emits","methods","onInput","event","this","$emit","target","value","AtkDatePicker","atkDatePicker","AtkLookup","atkLookup","data","fieldName","cellData","type","inputName","inputValue","fieldValue","getComponent","definition","component","getComponentProps","readOnlyValue","componentProps","columns","fields","isDeleteAll","filterVisibleColumns","filter","v","isVisible","onToggleDeleteAll","$nextTick","atk","eventBus","emit","$root","$el","parentElement","id","isOn","$refs","check","checked","getTextAlign","column","align","isEditable","getVisibleColumns","count","field","hasError","Object","keys","errors","length","hasCaption","caption","getErrorMsg","rows","row","error","col","msg","computed","isIndeterminate","selectionState","isChecked","form","formName","valueJson","rowData","fieldData","eventFields","deletables","hasChangeCb","tableProp","basic","celled","collapsing","stackable","inverted","tableProps","AtkMultilineHeader","multilineHeader","AtkMultilineBody","fieldDefs","created","AtkMultilineRow","AtkMultilineCell","multilineCell","toDelete","get","isDeletable","set","onTab","columnIndex","hasColumnError","some","onToggleDelete","e","rowId","onUpdateValue","getValue","rowValues","default","onTabLastColumn","rowIndex","isDeletableRow","includes","__atkml","getRowErrors","mounted","buildRowData","updateInputValue","on","payload","onUpdate","i","indexOf","splice","push","onTabLastRow","isLimitReached","addOnTab","onAdd","newRow","createRow","afterAdd","JSON","parse","fetchExpression","fetchOnUpdateAction","onDelete","atkmlId","deleteRow","afterDelete","updateFieldInRow","clearError","debouncedFx","createDebouncedFx","call","getUUID","findIndex","stringify","jsonValue","hasExpression","isExpr","arguments","undefined","$","addButton","api","url","method","__atkml_action","postData","async","context","apiService","suiFetch","stateContext","console","findRow","resp","expressions","find","getInputElement","atkmlInput","replaceAll","c","r","Math","floor","random","toString","getSpan","getDeletables","getMainToggleState","res","isDeleteDisable","rowLimit","config","defaultDate","modelValue","Date","locale","flatpickr","l10ns","flatPickr","formatDate","dateFormat","getFlatpickrValue","reference","otherConfig","selection","dropdownProps","query","temp","optionalValue","options","Array","isArray","getDropdownValue","item","$some","proto","real","predicate","iterate","aCallable","anObject","getIteratorDirect","record","counter","stop","IS_RECORD","INTERRUPTED","stopped"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"js/atk-vue-multiline.min.js","mappings":"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","sources":["webpack://atk/./src/vue-components/multiline/multiline-cell.component.js","webpack://atk/./src/vue-components/multiline/multiline-readonly.component.js","webpack://atk/./src/vue-components/multiline/multiline-textarea.component.js","webpack://atk/./src/vue-components/multiline/multiline-header.component.js","webpack://atk/./src/vue-components/multiline/multiline.component.js","webpack://atk/./src/vue-components/multiline/multiline-body.component.js","webpack://atk/./src/vue-components/multiline/multiline-row.component.js","webpack://atk/./src/vue-components/share/atk-date-picker.js","webpack://atk/./src/vue-components/share/atk-lookup.js","webpack://atk/./node_modules/core-js/modules/esnext.async-iterator.some.js","webpack://atk/./node_modules/core-js/modules/esnext.iterator.some.js"],"sourcesContent":["import multilineReadonly from './multiline-readonly.component';\nimport multilineTextarea from './multiline-textarea.component';\nimport atkDatePicker from '../share/atk-date-picker';\nimport atkLookup from '../share/atk-lookup';\n\nexport default {\n name: 'AtkMultilineCell',\n template: `\n `,\n components: {\n AtkMultilineReadonly: multilineReadonly,\n AtkMultilineTextarea: multilineTextarea,\n AtkDatePicker: atkDatePicker,\n AtkLookup: atkLookup,\n },\n props: ['cellData', 'fieldValue'],\n data: function () {\n return {\n fieldName: this.cellData.name,\n type: this.cellData.type,\n inputName: '-' + this.cellData.name,\n inputValue: this.fieldValue,\n };\n },\n emits: ['updateValue'],\n methods: {\n getComponent: function () {\n return this.cellData.definition.component;\n },\n getComponentProps: function () {\n if (this.getComponent() === 'AtkMultilineReadonly') {\n return { readOnlyValue: this.fieldValue };\n }\n\n return this.cellData.definition.componentProps;\n },\n onInput: function (value) {\n this.inputValue = value;\n this.$emit('updateValue', this.fieldName, this.inputValue);\n },\n },\n};\n","/**\n * Simply display a readonly value.\n */\nexport default {\n name: 'AtkMultilineReadonly',\n template: '{{readOnlyValue}}
',\n props: ['readOnlyValue'],\n};\n","export default {\n name: 'AtkMultilineTextarea',\n template: '',\n props: ['modelValue'],\n emits: ['update:modelValue'],\n methods: {\n onInput: function (event) {\n this.$emit('update:modelValue', event.target.value);\n },\n },\n};\n","import atk from 'atk';\n\nexport default {\n name: 'AtkMultilineHeader',\n template: `\n \n \n \n \n \n {{getErrorMsg(column)}}\n \n \n \n {{caption}} \n \n \n \n \n \n \n {{column.caption}}
\n \n {{getErrorMsg(column)}} \n
\n \n \n `,\n props: ['fields', 'selectionState', 'errors', 'caption'],\n data: function () {\n return { columns: this.fields, isDeleteAll: false };\n },\n methods: {\n filterVisibleColumns: function (columns) {\n return columns.filter((v) => v.isVisible);\n },\n onToggleDeleteAll: function () {\n this.$nextTick(() => {\n atk.eventBus.emit(this.$root.$el.parentElement.id + '-toggle-delete-all', { isOn: this.$refs.check.checked });\n });\n },\n getTextAlign: function (column) {\n let align = 'left';\n if (!column.isEditable) {\n switch (column.type) {\n case 'integer':\n case 'float':\n case 'atk4_money': {\n align = 'right';\n\n break;\n }\n }\n }\n\n return align;\n },\n getVisibleColumns: function () {\n let count = 1; // add deletable column;\n for (const field of this.columns) {\n count = field.isVisible ? count + 1 : count;\n }\n\n return count;\n },\n hasError: function () {\n return Object.keys(this.errors).length > 0;\n },\n hasCaption: function () {\n return this.caption;\n },\n getErrorMsg: function (column) {\n if (this.hasError()) {\n const rows = Object.keys(this.errors);\n for (const row of rows) {\n const error = this.errors[row].filter((col) => col.name === column.name);\n if (error.length > 0) {\n return error[0].msg;\n }\n }\n }\n\n return null;\n },\n },\n computed: {\n isIndeterminate: function () {\n return this.selectionState === 'indeterminate';\n },\n isChecked: function () {\n return this.selectionState === 'on';\n },\n },\n};\n","import $ from 'external/jquery';\nimport atk from 'atk';\nimport multilineBody from './multiline-body.component';\nimport multilineHeader from './multiline-header.component';\n\nexport default {\n name: 'AtkMultiline',\n template: `\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n
`,\n props: {\n data: Object,\n },\n data: function () {\n const tableDefault = {\n compact: 'very',\n basic: 'very',\n unstackable: true,\n celled: false,\n collapsing: false,\n inverted: false,\n };\n\n return {\n form: this.data.formName,\n valueJson: this.data.inputValue,\n name: this.data.inputName,\n rowData: [],\n fieldData: this.data.fields || [],\n eventFields: this.data.eventFields || [],\n deletables: [],\n hasChangeCb: this.data.hasChangeCb,\n errors: {},\n caption: this.data.caption || null,\n tableProp: { ...tableDefault, ...this.data.tableProps },\n };\n },\n components: {\n AtkMultilineHeader: multilineHeader,\n AtkMultilineBody: multilineBody,\n },\n mounted: function () {\n this.rowData = this.buildRowData(this.valueJson ?? '[]');\n this.updateInputValue();\n\n atk.eventBus.on(this.$root.$el.parentElement.id + '-update-row', (payload) => {\n this.onUpdate(payload.rowId, payload.fieldName, payload.value);\n });\n\n atk.eventBus.on(this.$root.$el.parentElement.id + '-toggle-delete', (payload) => {\n const i = this.deletables.indexOf(payload.rowId);\n if (i !== -1) {\n this.deletables.splice(i, 1);\n } else {\n this.deletables.push(payload.rowId);\n }\n });\n\n atk.eventBus.on(this.$root.$el.parentElement.id + '-toggle-delete-all', (payload) => {\n this.deletables = [];\n if (payload.isOn) {\n for (const row of this.rowData) {\n this.deletables.push(row.__atkml);\n }\n }\n });\n\n atk.eventBus.on(this.$root.$el.parentElement.id + '-multiline-rows-error', (payload) => {\n this.errors = { ...payload.errors };\n });\n },\n methods: {\n onTabLastRow: function () {\n if (!this.isLimitReached && this.data.addOnTab) {\n this.onAdd();\n }\n },\n onAdd: function () {\n const newRow = this.createRow(this.data.fields);\n this.rowData.push(newRow);\n this.updateInputValue();\n if (this.data.afterAdd && typeof this.data.afterAdd === 'function') {\n this.data.afterAdd(JSON.parse(this.valueJson));\n }\n this.fetchExpression(newRow.__atkml);\n this.fetchOnUpdateAction();\n },\n onDelete: function () {\n for (const atkmlId of this.deletables) {\n this.deleteRow(atkmlId);\n }\n this.deletables = [];\n this.updateInputValue();\n this.fetchOnUpdateAction();\n if (this.data.afterDelete && typeof this.data.afterDelete === 'function') {\n this.data.afterDelete(JSON.parse(this.valueJson));\n }\n },\n onUpdate: function (atkmlId, fieldName, value) {\n this.updateFieldInRow(atkmlId, fieldName, value);\n this.clearError(atkmlId, fieldName);\n this.updateInputValue();\n\n if (!this.onUpdate.debouncedFx) {\n this.onUpdate.debouncedFx = atk.createDebouncedFx(() => {\n this.onUpdate.debouncedFx = null;\n this.fetchExpression(atkmlId);\n this.fetchOnUpdateAction(fieldName);\n }, 250);\n }\n this.onUpdate.debouncedFx.call(this);\n },\n /**\n * Creates a new row of data and\n * set values to default if available.\n */\n createRow: function (fields) {\n const row = {};\n for (const field of fields) {\n row[field.name] = field.default;\n }\n row.__atkml = this.getUUID();\n\n return row;\n },\n deleteRow: function (atkmlId) {\n this.rowData.splice(this.rowData.findIndex((row) => row.__atkml === atkmlId), 1);\n delete this.errors[atkmlId];\n },\n /**\n * Update the value of the field in rowData.\n */\n updateFieldInRow: function (atkmlId, fieldName, value) {\n for (const row of this.rowData) {\n if (row.__atkml === atkmlId) {\n row[fieldName] = value;\n }\n }\n },\n clearError: function (atkmlId, fieldName) {\n if (atkmlId in this.errors) {\n const errors = this.errors[atkmlId].filter((error) => error.name !== fieldName);\n this.errors[atkmlId] = [...errors];\n if (errors.length === 0) {\n delete this.errors[atkmlId];\n }\n }\n },\n /**\n * Update Multi-line Form input with all rowData values\n * as JSON string.\n */\n updateInputValue: function () {\n this.valueJson = JSON.stringify(this.rowData);\n },\n /**\n * Build rowData from JSON string.\n */\n buildRowData: function (jsonValue) {\n const rows = JSON.parse(jsonValue);\n for (const row of rows) {\n row.__atkml = this.getUUID();\n }\n\n return rows;\n },\n /**\n * Check if one of the field use expression.\n */\n hasExpression: function () {\n return this.fieldData.some((field) => field.isExpr);\n },\n /**\n * Send on change action to server.\n */\n fetchOnUpdateAction: function (fieldName = null) {\n if (this.hasChangeCb && (fieldName === null || this.eventFields.includes(fieldName))) {\n $(this.$refs.addButton.$el).api({\n on: 'now',\n url: this.data.url,\n method: 'POST',\n data: { __atkml_action: 'on-change', rows: this.valueJson },\n });\n }\n },\n postData: async function (row) {\n const data = { ...row };\n const context = this.$refs.addButton.$el;\n data.__atkml_action = 'update-row';\n try {\n return await atk.apiService.suiFetch(this.data.url, { data: data, method: 'POST', stateContext: context });\n } catch (e) {\n console.error(e);\n }\n },\n /**\n * Get expressions values from server.\n */\n fetchExpression: async function (atkmlId) {\n if (this.hasExpression()) {\n const row = this.findRow(atkmlId);\n // server will return expression field/value if defined\n if (row) {\n const resp = await this.postData(row);\n if (resp.expressions) {\n const fields = Object.keys(resp.expressions);\n for (const field of fields) {\n this.updateFieldInRow(atkmlId, field, resp.expressions[field]);\n }\n this.updateInputValue();\n }\n }\n }\n },\n findRow: function (atkmlId) {\n return this.rowData.find((row) => row.__atkml === atkmlId);\n },\n getInputElement: function () {\n return this.$refs.atkmlInput;\n },\n /**\n * UUID v4 generator.\n */\n getUUID: function () {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replaceAll(/[xy]/g, (c) => {\n const r = Math.floor(Math.random() * 16);\n const v = c === 'x' ? r : r & (0x3 | 0x8); // eslint-disable-line no-bitwise\n\n return v.toString(16);\n });\n },\n },\n computed: {\n getSpan: function () {\n return this.fieldData.length - 1;\n },\n getDeletables: function () {\n return this.deletables;\n },\n /**\n * Return Delete all checkbox state base on\n * deletables entries.\n */\n getMainToggleState: function () {\n let res = 'off';\n if (this.deletables.length > 0) {\n res = this.deletables.length === this.rowData.length\n ? 'on'\n : 'indeterminate';\n }\n\n return res;\n },\n isDeleteDisable: function () {\n return this.deletables.length === 0;\n },\n isLimitReached: function () {\n if (this.data.rowLimit === 0) {\n return false;\n }\n\n return this.data.rowLimit < this.rowData.length + 1;\n },\n },\n};\n","import multilineRow from './multiline-row.component';\n\nexport default {\n name: 'AtkMultilineBody',\n template: `\n \n \n `,\n props: ['fieldDefs', 'rowData', 'deletables', 'errors'],\n data: function () {\n return { fields: this.fieldDefs };\n },\n created: function () {},\n components: {\n AtkMultilineRow: multilineRow,\n },\n computed: {\n rows: function () {\n return this.rowData;\n },\n },\n emits: ['onTabLastRow'],\n methods: {\n onTabLastColumn: function (rowIndex) {\n if (rowIndex + 1 === this.rowData.length) {\n this.$emit('onTabLastRow');\n }\n },\n isDeletableRow: function (row) {\n return this.deletables.includes(row.__atkml);\n },\n getRowErrors: function (rowId) {\n return this.errors[rowId] ?? [];\n },\n },\n};\n","import atk from 'atk';\nimport multilineCell from './multiline-cell.component';\n\n/**\n * This will create a table td element using SuiTableCell.\n * The td element is created only if column as set isVisible = true;\n * The td element will add a multiline cell element.\n * the multiline cell will set it's own template component depending on the fieldType.\n * getValue\n */\nexport default {\n name: 'AtkMultilineRow',\n template: `\n \n \n \n \n \n \n \n `,\n props: ['fields', 'rowId', 'isDeletable', 'rowValues', 'errors'],\n data: function () {\n return { columns: this.fields };\n },\n components: {\n AtkMultilineCell: multilineCell,\n },\n computed: {\n /**\n * toDelete is bind by v-model, thus we need a setter for\n * computed property to work.\n * When isDeletable is pass, will set checkbox according to it's value.\n */\n toDelete: {\n get: function () {\n return this.isDeletable;\n },\n set: function (v) {\n return v;\n },\n },\n },\n emits: ['onTabLastColumn'],\n methods: {\n filterVisibleColumns: function (columns) {\n return columns.filter((v) => v.isVisible);\n },\n onTab: function (columnIndex) {\n if (columnIndex === this.columns.filter((column) => column.isEditable).length - 1) {\n this.$emit('onTabLastColumn');\n }\n },\n hasColumnError: function (column) {\n return this.errors.some((v) => column.name === v.name);\n },\n onToggleDelete: function (e) {\n atk.eventBus.emit(this.$root.$el.parentElement.id + '-toggle-delete', { rowId: this.rowId });\n },\n onUpdateValue: function (fieldName, value) {\n atk.eventBus.emit(this.$root.$el.parentElement.id + '-update-row', { rowId: this.rowId, fieldName: fieldName, value: value });\n },\n getValue: function (column) {\n return this.rowValues[column.name] || column.default;\n },\n },\n};\n","/* global flatpickr */ // loaded after main JS\n\n/**\n * Wrapper for vue-flatpickr-component component.\n *\n * https://github.com/ankurk91/vue-flatpickr-component\n *\n * Properties:\n * config: Any of Flatpickr options\n */\nexport default {\n name: 'AtkDatePicker',\n template: `\n `,\n props: ['config', 'modelValue'],\n data: function () {\n const config = { ...this.config };\n\n if (config.defaultDate && !this.modelValue) {\n config.defaultDate = new Date();\n } else if (this.modelValue) {\n config.defaultDate = this.modelValue;\n }\n\n if (!config.locale) {\n config.locale = flatpickr.l10ns.default;\n }\n\n return {\n flatPickr: config,\n };\n },\n emits: ['setDefault'],\n mounted: function () {\n // if value is not set but default date is, then emit proper string value to parent\n if (!this.modelValue && this.flatPickr.defaultDate) {\n this.onUpdate(\n this.flatPickr.defaultDate instanceof Date\n ? flatpickr.formatDate(this.config.defaultDate, this.config.dateFormat)\n : this.flatPickr.defaultDate\n );\n }\n },\n methods: {\n getFlatpickrValue: function (value) {\n return value;\n },\n onUpdate: function (value) {\n this.$emit('update:modelValue', value);\n },\n },\n};\n","/**\n * Wrapper for Fomantic-UI dropdown component into a lookup component.\n *\n * Properties:\n * config:\n * reference: the reference field name associate with model or hasOne name. This field name will be sent along with URL callback parameter as of 'field=name'.\n * Note: The remaining config object may contain any or SuiDropdown { props: value } pair.\n *\n * modelValue: The selected value.\n * optionalValue: The initial list of options for the dropdown.\n */\nexport default {\n name: 'AtkLookup',\n template: `\n `,\n props: ['config', 'modelValue', 'optionalValue'],\n data: function () {\n const {\n url, reference, ...otherConfig\n } = this.config;\n otherConfig.selection = true;\n\n return {\n dropdownProps: otherConfig,\n url: url || null,\n field: reference,\n query: '',\n temp: '',\n };\n },\n mounted: function () {\n if (this.optionalValue) {\n this.dropdownProps.options = Array.isArray(this.optionalValue) ? this.optionalValue : [this.optionalValue];\n }\n },\n emits: ['update:modelValue'],\n methods: {\n getDropdownValue: function (value) {\n return this.dropdownProps.options.find((item) => item.value === value);\n },\n onUpdate: function (value) {\n this.$emit('update:modelValue', value.value);\n },\n },\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/async-iterator-iteration').some;\n\n// `AsyncIterator.prototype.some` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n some: function some(predicate) {\n return $some(this, predicate);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.some` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n some: function some(predicate) {\n anObject(this);\n aCallable(predicate);\n var record = getIteratorDirect(this);\n var counter = 0;\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n"],"names":["name","template","components","AtkMultilineReadonly","props","AtkMultilineTextarea","emits","methods","onInput","event","this","$emit","target","value","AtkDatePicker","atkDatePicker","AtkLookup","atkLookup","data","fieldName","cellData","type","inputName","inputValue","fieldValue","getComponent","definition","component","getComponentProps","readOnlyValue","componentProps","columns","fields","isDeleteAll","filterVisibleColumns","filter","v","isVisible","onToggleDeleteAll","$nextTick","atk","eventBus","emit","$root","$el","parentElement","id","isOn","$refs","check","checked","getTextAlign","column","align","isEditable","getVisibleColumns","count","field","hasError","Object","keys","errors","length","hasCaption","caption","getErrorMsg","rows","row","error","col","msg","computed","isIndeterminate","selectionState","isChecked","form","formName","valueJson","rowData","fieldData","eventFields","deletables","hasChangeCb","tableProp","compact","basic","unstackable","celled","collapsing","inverted","tableProps","AtkMultilineHeader","multilineHeader","AtkMultilineBody","fieldDefs","created","AtkMultilineRow","AtkMultilineCell","multilineCell","toDelete","get","isDeletable","set","onTab","columnIndex","hasColumnError","some","onToggleDelete","e","rowId","onUpdateValue","getValue","rowValues","default","onTabLastColumn","rowIndex","isDeletableRow","includes","__atkml","getRowErrors","mounted","buildRowData","updateInputValue","on","payload","onUpdate","i","indexOf","splice","push","onTabLastRow","isLimitReached","addOnTab","onAdd","newRow","createRow","afterAdd","JSON","parse","fetchExpression","fetchOnUpdateAction","onDelete","atkmlId","deleteRow","afterDelete","updateFieldInRow","clearError","debouncedFx","createDebouncedFx","call","getUUID","findIndex","stringify","jsonValue","hasExpression","isExpr","arguments","undefined","$","addButton","api","url","method","__atkml_action","postData","async","context","apiService","suiFetch","stateContext","console","findRow","resp","expressions","find","getInputElement","atkmlInput","replaceAll","c","r","Math","floor","random","toString","getSpan","getDeletables","getMainToggleState","res","isDeleteDisable","rowLimit","config","defaultDate","modelValue","Date","locale","flatpickr","l10ns","flatPickr","formatDate","dateFormat","getFlatpickrValue","reference","otherConfig","selection","dropdownProps","query","temp","optionalValue","options","Array","isArray","getDropdownValue","item","$some","proto","real","predicate","iterate","aCallable","anObject","getIteratorDirect","record","counter","stop","IS_RECORD","INTERRUPTED","stopped"],"sourceRoot":""}
\ No newline at end of file
diff --git a/src/Grid.php b/src/Grid.php
index 2f329702cf..f3fb3db611 100644
--- a/src/Grid.php
+++ b/src/Grid.php
@@ -136,7 +136,7 @@ protected function init(): void
protected function initTable(): Table
{
/** @var Table */
- $table = $this->container->add(Factory::factory([Table::class, 'class.very compact very basic striped single line' => true, 'reload' => $this->container], $this->table), 'Table');
+ $table = $this->container->add(Factory::factory([Table::class, 'class.very compact very basic striped single line unstackable' => true, 'reload' => $this->container], $this->table), 'Table');
return $table;
}
diff --git a/src/Menu.php b/src/Menu.php
index be505488bd..b1ca871abb 100644
--- a/src/Menu.php
+++ b/src/Menu.php
@@ -11,7 +11,7 @@
class Menu extends View
{
- public $ui = 'menu';
+ public $ui = 'menu wrapping';
/**
* If you set this to false, then upon clicking on the item, it won't
diff --git a/src/Paginator.php b/src/Paginator.php
index a176a5a2c2..9285724db2 100644
--- a/src/Paginator.php
+++ b/src/Paginator.php
@@ -9,8 +9,8 @@
class Paginator extends View
{
- public $ui = 'pagination menu';
public $defaultTemplate = 'paginator.html';
+ public $ui = 'pagination menu wrapping';
/** Specify how many pages this paginator has in total. */
public int $total;
diff --git a/src/Tabs.php b/src/Tabs.php
index ec8fba39a4..85792cd4f0 100644
--- a/src/Tabs.php
+++ b/src/Tabs.php
@@ -9,7 +9,7 @@
class Tabs extends View
{
public $defaultTemplate = 'tabs.html';
- public $ui = 'tabular menu';
+ public $ui = 'tabular menu wrapping';
/** @var string name of active tab */
public $activeTabName;
diff --git a/template/paginator.html b/template/paginator.html
index 886c19524e..dd2ad14328 100644
--- a/template/paginator.html
+++ b/template/paginator.html
@@ -1,4 +1,4 @@
-