cronapp-framework-mobile-js 2.8.9 → 2.8.13

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.
Files changed (47) hide show
  1. package/components/crn-button.components.json +1 -1
  2. package/components/crn-chart.components.json +1 -0
  3. package/components/crn-header-button.components.json +1 -1
  4. package/components/crn-input-button.components.json +16 -0
  5. package/components/crn-input-floating.components.json +19 -3
  6. package/components/crn-input-icon.components.json +16 -0
  7. package/components/crn-input-inline.components.json +16 -0
  8. package/components/crn-input.components.json +16 -0
  9. package/components/crn-ion-footer-bar.components.json +1 -1
  10. package/components/crn-ion-header-bar.components.json +1 -1
  11. package/components/crn-ion-list.components.json +0 -31
  12. package/components/crn-item-swipe.components.json +2 -2
  13. package/components/crn-list-item-icon.components.json +7 -20
  14. package/components/crn-list-swipe.components.json +2 -2
  15. package/components/crn-list.components.json +1 -1
  16. package/components/crn-navbar.components.json +1 -0
  17. package/components/crn-slider-item.components.json +104 -5
  18. package/components/crn-slider.components.json +6 -6
  19. package/components/crn-textarea.components.json +19 -6
  20. package/components/css/app.css +12 -0
  21. package/components/templates/advanced.list.designtime.html +0 -24
  22. package/components/templates/crn-ion-segment-item.template.html +1 -1
  23. package/components/templates/crn-ion-segment.template.html +4 -4
  24. package/components/templates/ion-footer-bar.template.html +11 -5
  25. package/components/templates/ion-header-bar.template.html +2 -2
  26. package/components/templates/item.slider.template.html +3 -3
  27. package/components/templates/item.swipe.template.html +2 -2
  28. package/components/templates/slider.template.html +14 -18
  29. package/css/app.css +91 -4
  30. package/dist/components/css/app.css +1 -1
  31. package/dist/components/templates/advanced.list.designtime.html +1 -1
  32. package/dist/components/templates/crn-ion-segment-item.template.html +1 -1
  33. package/dist/components/templates/crn-ion-segment.template.html +1 -1
  34. package/dist/components/templates/ion-footer-bar.template.html +1 -1
  35. package/dist/components/templates/ion-header-bar.template.html +1 -1
  36. package/dist/components/templates/item.slider.template.html +1 -1
  37. package/dist/components/templates/item.swipe.template.html +1 -1
  38. package/dist/components/templates/slider.template.html +1 -1
  39. package/dist/css/app.css +1 -1
  40. package/dist/img/placehold-300x200.png +0 -0
  41. package/dist/js/controllers.authentication.js +1 -1
  42. package/dist/js/directives.js +17 -1
  43. package/img/placehold-300x200.png +0 -0
  44. package/js/controllers.authentication.js +37 -4
  45. package/js/directives.js +54 -51
  46. package/lib/ionic/js/ionic.bundle.js +4 -2
  47. package/package.json +1 -1
@@ -1,9 +1,15 @@
1
1
  <ion-footer-bar class="bar bar-footer bar-positive" xattr-theme="bar-positive">
2
- <div class="buttons">
3
- <button class="button button-left bar-energized" left-button-theme="background-color: #387ef5;" id="crn-button-left" style="background-color: #387ef5;">Left Button</button>
2
+ <div class="buttons" id="left-buttons">
3
+ <button class="button button-positive button-medium filled" xattr-fullsize="" xattr-theme="button-positive" data-component="crn-button" xattr-size="button-medium" xattr-type="filled">
4
+ <span>Left Button</span>
5
+ </button>
4
6
  </div>
5
- <h1 class="title" xattr-position="text-align: center;" style="left: 91px; right: 110px; text-align: center;" id="crn-heading-title">Title!</h1>
6
- <div class="buttons">
7
- <button class="button button-right bar-balanced" right-button-theme="background-color: #387ef5;" id="crn-button-right" style="background-color: #387ef5;">Right Button</button>
7
+
8
+ <h1 class="title" xattr-position="text-align: center;" style="text-align: center;" id="crn-heading-title">Title!</h1>
9
+
10
+ <div class="buttons" id="right-buttons">
11
+ <button class="button button-positive button-medium filled" xattr-fullsize="" xattr-theme="button-positive" data-component="crn-button" xattr-size="button-medium" xattr-type="filled">
12
+ <span>Right Button</span>
13
+ </button>
8
14
  </div>
9
15
  </ion-footer-bar>
@@ -1,10 +1,10 @@
1
- <ion-header-bar class="bar bar-positive" data-component="crn-ion-header-bar" xattr-theme="bar-positive">
1
+ <ion-header-bar class="crn-ion-header-bar bar bar-positive" data-component="crn-ion-header-bar" xattr-theme="bar-positive">
2
2
  <div class="buttons buttons-left header-item" data-component="crn-header-button" id="crn-header-button-1">
3
3
  <button class="button button-clear component-holder" menu-toggle="left">
4
4
  <i class="ion ion-android-menu"></i>
5
5
  </button>
6
6
  </div>
7
- <h1 class="title" align-title="text-align: center;" style="text-align: center; left: 40px; right: 40px;">Title!</h1>
7
+ <h1 class="title" align-title="text-align: center;" style="text-align: center;">Title!</h1>
8
8
  <div class="buttons buttons-right header-item" data-component="crn-header-button" id="crn-header-button-2">
9
9
  <button class="button button-clear component-holder" menu-toggle="right">
10
10
  <i class="ion ion-android-menu"></i>
@@ -1,4 +1,4 @@
1
- <ion-slide xattr-theme="dark-bg" id="crn-slider-item-${RANDOM}-1" data-component="crn-slider-item"
2
- class="dark-bg active" style="width: 100%; height: 200px; position: relative" data-container="true" data-replace="true">
3
- <h2 data-component="crn-label" style="color: white; font-weight: bold; top: 50%; left: 50%; margin: 0; transform: translate(-50%, -50%); position: absolute;" data-container="true" data-replace="true">SLIDE TITLE</h2>
1
+ <ion-slide xattr-theme="positive-bg" id="crn-slider-item-${RANDOM}" data-component="crn-slider-item" class="positive-bg crn-slider-item" data-container="true" data-replace="true">
2
+ <img alt="Placehold" src="node_modules/cronapp-framework-mobile-js/img/placehold-300x200.png" class="component-holder" style="object-fit: cover;" xattr-position="" width="100%" height="100%" object-fit="object-fit: cover;" data-component="crn-image" id="crn-image-${RANDOM}">
3
+ <h2 class="text-center top-50" data-component="crn-label" data-container="true" data-replace="true" horizontal-text-position="text-center" vertical-text-position="top-50">NEW SLIDE</h2>
4
4
  </ion-slide>
@@ -1,6 +1,6 @@
1
- <ion-list crn-datasource="" class="listCanSwipe" id="crn-list-swipe${RANDOM}">
1
+ <ion-list crn-datasource="" class="listCanSwipe" id="crn-list-swipe${RANDOM}" data-component="crn-item-swipe">
2
2
  <ion-item class="item" id="crn-list-item-swipe${RANDOM}" data-component="crn-item-swipe">
3
- <h2 class="titleItem" style="display: inline">Item</h2>
3
+ <h2 class="titleItem">Item</h2>
4
4
  <div id="crn-item-options${RANDOM}" class="component-holder" data-component="crn-item-options">
5
5
  <div class="crn-item-options" data-item="true">
6
6
  <ion-option-button id="crn-option-button${RANDOM}" data-component="crn-button" class="button-positive button editButton">
@@ -1,24 +1,20 @@
1
1
  <div class="crn-slider display-ion-slider" id="crn-slider-${COMPONENTID}">
2
- <ion-slide-box class="" auto-play="true" slide-interval="2000" does-continue="true">
3
- <ion-slide xattr-theme="positive-bg" id="crn-slider-item-${RANDOM}-1" data-component="crn-slider-item"
4
- class="positive-bg active" style="width: 100%; height: 200px; position: relative" data-container="true"
5
- data-replace="true">
6
- <h2 data-component="crn-label"
7
- style="color: white; font-weight: bold; top: 50%; left: 50%; margin: 0; transform: translate(-50%, -50%); position: absolute"
8
- data-container="true" data-replace="true">SLIDE 1</h2>
2
+ <ion-slide-box class="" auto-play="false" slide-interval="2000" does-continue="false">
3
+
4
+ <ion-slide xattr-theme="positive-bg" id="crn-slider-item-${RANDOM}-1" data-component="crn-slider-item" class="positive-bg active crn-slider-item" data-container="true" data-replace="true">
5
+ <img alt="Placehold" src="node_modules/cronapp-framework-mobile-js/img/placehold-300x200.png" class="component-holder" style="object-fit: cover;" xattr-position="" width="100%" height="100%" object-fit="object-fit: cover;" data-component="crn-image" id="crn-image-${RANDOM}">
6
+ <h2 class="text-center top-50" data-component="crn-label" data-container="true" data-replace="true" horizontal-text-position="text-center" vertical-text-position="top-50">SLIDE 1</h2>
9
7
  </ion-slide>
10
- <ion-slide xattr-theme="royal-bg" id="crn-slider-item-${RANDOM}-2" data-component="crn-slider-item" class="royal-bg"
11
- style="width: 100%; height: 200px; position: relative" data-container="true" data-replace="true">
12
- <h2 data-component="crn-label"
13
- style="text-align: center; color: white; font-weight: bold; top: 50%; left: 50%; margin: 0; transform: translate(-50%, -50%); position: absolute"
14
- data-container="true" data-replace="true">SLIDE 2</h2>
8
+
9
+ <ion-slide xattr-theme="royal-bg" id="crn-slider-item-${RANDOM}-2" data-component="crn-slider-item" class="royal-bg crn-slider-item" data-container="true" data-replace="true">
10
+ <img alt="Placehold" src="node_modules/cronapp-framework-mobile-js/img/placehold-300x200.png" class="component-holder" style="object-fit: cover;" xattr-position="" width="100%" height="100%" object-fit="object-fit: cover;" data-component="crn-image" id="crn-image-${RANDOM}">
11
+ <h2 class="text-center top-50" data-component="crn-label" data-container="true" data-replace="true" horizontal-text-position="text-center" vertical-text-position="top-50">SLIDE 2</h2>
15
12
  </ion-slide>
16
- <ion-slide xattr-theme="balanced-bg" id="crn-slider-item-${RANDOM}-3" data-component="crn-slider-item"
17
- class="balanced-bg" style="width: 100%; height: 200px; position: relative" data-container="true"
18
- data-replace="true">
19
- <h2 data-component="crn-label"
20
- style="text-align: center; color: white; font-weight: bold; top: 50%; left: 50%; margin: 0; transform: translate(-50%, -50%); position: absolute"
21
- data-container="true" data-replace="true">SLIDE 3</h2>
13
+
14
+ <ion-slide xattr-theme="balanced-bg" id="crn-slider-item-${RANDOM}-3" data-component="crn-slider-item" class="balanced-bg crn-slider-item" data-container="true" data-replace="true">
15
+ <img alt="Placehold" src="node_modules/cronapp-framework-mobile-js/img/placehold-300x200.png" class="component-holder" style="object-fit: cover;" xattr-position="" width="100%" height="100%" object-fit="object-fit: cover;" data-component="crn-image" id="crn-image-${RANDOM}">
16
+ <h2 class="text-center top-50" data-component="crn-label" data-container="true" data-replace="true" horizontal-text-position="text-center" vertical-text-position="top-50">SLIDE 3</h2>
22
17
  </ion-slide>
18
+
23
19
  </ion-slide-box>
24
20
  </div>
package/css/app.css CHANGED
@@ -37,7 +37,7 @@
37
37
  }
38
38
 
39
39
  .bar-footer {
40
- height: calc(54px + var(--safe-area-inset-bottom, 19px));
40
+ height: calc(44px + var(--safe-area-inset-bottom, 19px));
41
41
  padding-left: var(--safe-area-inset-left);
42
42
  padding-right: var(--safe-area-inset-right);
43
43
  }
@@ -57,11 +57,11 @@
57
57
  }
58
58
 
59
59
  .tabs {
60
- height: calc(44px + var(--safe-area-inset-bottom, 19px)) !important;
61
- min-height: 44px;
60
+ height: calc(53px + var(--safe-area-inset-bottom, 19px)) !important;
61
+ min-height: 53px;
62
62
  }
63
63
 
64
- .bar .title + .button:last-child, .bar > .button + .button:last-child, .bar > .button.pull-right, .bar .buttons.pull-right, .bar .title + .buttons {
64
+ .bar .title, .button:last-child, .bar > .button + .button:last-child, .bar > .button.pull-right, .bar .buttons.pull-right, .bar .title + .buttons {
65
65
  margin-right: calc(5px + var(--safe-area-inset-left));
66
66
  }
67
67
 
@@ -259,6 +259,8 @@ ion-header-bar.bar h1.title {
259
259
  .button-bar>.button {
260
260
  gap: 6px;
261
261
  display: flex;
262
+ align-items: center;
263
+ justify-content: center;
262
264
  }
263
265
 
264
266
  .button-bar>.button:last-child {
@@ -303,4 +305,89 @@ ion-header-bar.bar h1.title {
303
305
 
304
306
  .tab-content>.active {
305
307
  display: block
308
+ }
309
+
310
+ .crn-ion-header-bar h1.title{
311
+ left: 40px;
312
+ right: 40px;
313
+ }
314
+
315
+ /* ion-footer-bar */
316
+
317
+ .bar-footer {
318
+ display: flex;
319
+ justify-content: space-between;
320
+ align-items: center;
321
+ width: 100%;
322
+ }
323
+
324
+ .bar-footer .button {
325
+ border-color: #1659ca;
326
+ margin: 0;
327
+ }
328
+
329
+ .bar-footer .buttons:last-child {
330
+ margin-right: 0;
331
+ }
332
+
333
+ .bar.bar-footer {
334
+ padding: 5px;
335
+ }
336
+
337
+ .bar-footer.bar .title {
338
+ position: initial;
339
+ width: 45%;
340
+ }
341
+
342
+ .bar-footer.bar .title+.buttons{
343
+ position: initial;
344
+ }
345
+
346
+ /* Carrossel */
347
+
348
+ .crn-slider-item {
349
+ height: 200px;
350
+ position: relative;
351
+ object-fit: cover;
352
+ }
353
+
354
+ .crn-slider-item h2 {
355
+ text-align: center;
356
+ color: #ffffff;
357
+ font-weight: bold;
358
+ left: 50%;
359
+ margin: 0;
360
+ transform: translate(-50%, -50%);
361
+ position: absolute;
362
+ width: 100%;
363
+ }
364
+
365
+ .crn-slider-item h2.text-center{
366
+ text-align: center !important;
367
+ }
368
+
369
+ .crn-slider-item h2.text-left{
370
+ text-align: left !important;
371
+ }
372
+
373
+ .crn-slider-item h2.text-right{
374
+ text-align: right !important;
375
+ }
376
+
377
+ .slider-pager{
378
+ bottom: 5px;
379
+ }
380
+
381
+ .slider{
382
+ width: 100%;
383
+ }
384
+
385
+ .item input.ng-invalid,
386
+ .item-input input.ng-invalid {
387
+ border-bottom: 1px solid #f15858;
388
+ }
389
+
390
+ textarea.ng-invalid, textarea.ng-invalid-minlength{
391
+ border-bottom: 1px solid #f15858;
392
+ margin-bottom: 0;
306
393
  }
@@ -1 +1 @@
1
- @import "tabs-color.css";@import 'background-color.css';@import 'icon-size.css';@import 'crn-ion-segment.css';:root{--assertive:#ef473a;--balanced:#33cd5f;--energized:#ffc900;--light:#fff;--stable:#f8f8f8;--calm:#11c1f3;--positive:#387ef5;--royal:#886aea;--dark:#444;--white:#fff;--gray:#333;--black:#000;--blue:#0247fe;--light-blue:#85a5ff;--dark-blue:#00217a;--purple:#3d01a4;--light-purple:#b285ff;--dark-purple:#2d007a;--red:#fe2712;--light-red:#fe8f84;--dark-red:#7a0b00;--orange:#fb9b02;--light-orange:#ffd085;--dark-orange:#7a4b00;--yellow:#ff3;--light-yellow:#ffff85;--dark-yellow:#7a7a00;--green:#66b032;--light-green:#b7ff85;--dark-green:#337a00}.font-size-100{font-size:100%}.font-size-200{font-size:200%}.font-size-300{font-size:300%}.font-size-400{font-size:400%}.font-size-500{font-size:500%}.font-size-600{font-size:600%}.font-size-700{font-size:700%}
1
+ @import "tabs-color.css";@import 'background-color.css';@import 'icon-size.css';@import 'crn-ion-segment.css';:root{--assertive:#ef473a;--balanced:#33cd5f;--energized:#ffc900;--light:#fff;--stable:#f8f8f8;--calm:#11c1f3;--positive:#387ef5;--royal:#886aea;--dark:#444;--white:#fff;--gray:#333;--black:#000;--blue:#0247fe;--light-blue:#85a5ff;--dark-blue:#00217a;--purple:#3d01a4;--light-purple:#b285ff;--dark-purple:#2d007a;--red:#fe2712;--light-red:#fe8f84;--dark-red:#7a0b00;--orange:#fb9b02;--light-orange:#ffd085;--dark-orange:#7a4b00;--yellow:#ff3;--light-yellow:#ffff85;--dark-yellow:#7a7a00;--green:#66b032;--light-green:#b7ff85;--dark-green:#337a00}.font-size-100{font-size:100%}.font-size-200{font-size:200%}.font-size-300{font-size:300%}.font-size-400{font-size:400%}.font-size-500{font-size:500%}.font-size-600{font-size:600%}.font-size-700{font-size:700%}.top-13{top:13%}.top-50{top:50%}.top-78{top:78%}
@@ -1 +1 @@
1
- <div class="component-holder ng-scope" data-component="crn-ion-list" id="crn-ion-list-1003183"><div class="item item-input-inset"><div class="item-input-wrapper"><i class="icon ion-search placeholder-icon"></i> <input aria-label="Pesquisar" type="text" placeholder="Pesquisar" class="ng-pristine ng-untouched ng-valid ng-empty"></div><button class="button-small cron-list-button-clean button button-inline button-positive component-holder"><span cron-list-button-text="">Limpar Seleção</span></button></div><ion-list type="" can-swipe="listCanSwipe" class="disable-user-behavior"><div class="list"><ion-item class="item item-complex item-right-editable item-icon-right item-thumbnail-left cron-list-selected"><ul class="checkbox-group component-holder cron-list-multiselect-thumbnail selected-designtime-list"><label class="checkbox"><input type="checkbox" value="on" checked="checked"></label></ul><div class="item-content"><img alt="Thumbnail" src="node_modules/cronapp-framework-mobile-js/img/user.svg"><div class="text-left"><h2 class="ng-binding">Advanced List Title</h2><p class="dark ng-binding">Advanced List Subtitle</p><p class="dark ng-binding">Advanced List Subtitle</p></div><i class="icon ion-alert icon-designtime-ion-list" xattr-theme="dark"></i></div></ion-item><ion-item class="item item-complex item-right-editable item-icon-right item-thumbnail-left"><ul ng-if="options.allowMultiselect" class="checkbox-group component-holder cron-list-multiselect-thumbnail"><label class="checkbox"><input type="checkbox"></label></ul><div class="item-content"><img alt="Thumbnail" src="node_modules/cronapp-framework-mobile-js/img/user.svg"><div class="text-left"><h2 class="ng-binding">admin@cronapp.io</h2><p class="dark ng-binding">Administrator</p><p class="dark ng-binding">admin</p></div><i ng-if="options.icon" class="icon ion-alert icon-designtime-ion-list" xattr-theme="dark"></i></div><div class="item-options invisible"><ion-option-button class="button-positive ion-edit button" ng-click="User.startEditing(rowData)" role="button" tabindex="0"><span class="ng-binding">Editar</span></ion-option-button><ion-option-button class="button-assertive ion-trash-a button" ng-click="User.remove(rowData)" role="button" tabindex="0"><span class="ng-binding">Remover</span></ion-option-button></div></ion-item></div></ion-list></div>
1
+ <div class="component-holder ng-scope" data-component="crn-ion-list" id="crn-ion-list-1003183"><div class="item item-input-inset"><div class="item-input-wrapper"><i class="icon ion-search placeholder-icon"></i> <input aria-label="Pesquisar" type="text" placeholder="Pesquisar" class="ng-pristine ng-untouched ng-valid ng-empty"></div><button class="button-small cron-list-button-clean button button-inline button-positive component-holder"><span cron-list-button-text="">Limpar Seleção</span></button></div><ion-list type="" can-swipe="listCanSwipe" class="disable-user-behavior"><div class="list"><ion-item class="item item-complex item-right-editable item-icon-right item-thumbnail-left cron-list-selected"><ul class="checkbox-group component-holder cron-list-multiselect-thumbnail selected-designtime-list"><label class="checkbox"><input type="checkbox" value="on" checked="checked"></label></ul><div class="item-content"><img alt="Thumbnail" src="node_modules/cronapp-framework-mobile-js/img/user.svg"><div class="text-left"><h2 class="ng-binding">Advanced List Title</h2><p class="dark ng-binding">Advanced List Subtitle</p><p class="dark ng-binding">Advanced List Subtitle</p></div><i class="icon ion-alert icon-designtime-ion-list" xattr-theme="dark"></i></div></ion-item></div></ion-list></div>
@@ -1 +1 @@
1
- <li role="presentation" class="active" data-component="crn-ion-segment-item"><a data-target="#tab1" lass="" role="tab" data-toggle="tab" data-container="true"><i class="ion ion-android-star"></i> <span>New</span></a></li>
1
+ <li role="presentation" class="active" data-component="crn-ion-segment-item"><a data-target="#tab1-${RANDOM}" lass="" role="tab" data-toggle="tab" data-container="true"><i class="ion ion-android-star"></i> <span>New</span></a></li>
@@ -1 +1 @@
1
- <div class="crn-ion-segment icon-theme-light-positive crn-ion-segment-classic" theme-ion-segment="crn-ion-segment-classic" icon-theme-light="icon-theme-light-positive"><ul class="nav nav-tabs font-size-200 tabs-template-full active- icon-orientation-left active--blue active- background-positive active-background-positive ion-segment-light" role="tablist" icon-size="font-size-200" tabs-template="tabs-template-full" background-color="background-positive" background-color-active="active-background-positive" icon-theme="ion-segment-light" icon-orientation="icon-orientation-left"><li role="presentation" class="active"><a data-target="#tab1" data-component="crn-ion-segment-item" role="tab" data-toggle="tab" data-container="true"><i class="ion ion-android-star"></i> <span>IOS</span></a></li><li role="presentation" class=""><a data-target="#tab2" data-component="crn-ion-segment-item" role="tab" data-toggle="tab" data-container="true"><i class="ion ion-android-star"></i> <span>Android</span></a></li></ul><div class="tab-content"><div role="tabpanel" class="tab-pane active" id="tab1"><div data-container="true" data-replace="true"></div></div><div role="tabpanel" class="tab-pane" id="tab2"><div data-container="true" data-replace="true"></div></div></div></div>
1
+ <div class="crn-ion-segment icon-theme-light-positive crn-ion-segment-classic" theme-ion-segment="crn-ion-segment-classic" icon-theme-light="icon-theme-light-positive"><ul class="nav nav-tabs font-size-200 tabs-template-full active- icon-orientation-left active--blue active- background-positive active-background-positive ion-segment-light" role="tablist" icon-size="font-size-200" tabs-template="tabs-template-full" background-color="background-positive" background-color-active="active-background-positive" icon-theme="ion-segment-light" icon-orientation="icon-orientation-left"><li role="presentation" class="active"><a data-target="#tab1-${RANDOM}" data-component="crn-ion-segment-item" role="tab" data-toggle="tab" data-container="true"><i class="ion ion-android-star"></i> <span>IOS</span></a></li><li role="presentation" class=""><a data-target="#tab2-${RANDOM}" data-component="crn-ion-segment-item" role="tab" data-toggle="tab" data-container="true"><i class="ion ion-android-star"></i> <span>Android</span></a></li></ul><div class="tab-content"><div role="tabpanel" class="tab-pane active" id="tab1-${RANDOM}"><div data-container="true" data-replace="true"></div></div><div role="tabpanel" class="tab-pane" id="tab2-${RANDOM}"><div data-container="true" data-replace="true"></div></div></div></div>
@@ -1 +1 @@
1
- <ion-footer-bar class="bar bar-footer bar-positive" xattr-theme="bar-positive"><div class="buttons"><button class="button button-left bar-energized" left-button-theme="background-color: #387ef5;" id="crn-button-left" style="background-color: #387ef5">Left Button</button></div><h1 class="title" xattr-position="text-align: center;" style="left: 91px; right: 110px; text-align: center" id="crn-heading-title">Title!</h1><div class="buttons"><button class="button button-right bar-balanced" right-button-theme="background-color: #387ef5;" id="crn-button-right" style="background-color: #387ef5">Right Button</button></div></ion-footer-bar>
1
+ <ion-footer-bar class="bar bar-footer bar-positive" xattr-theme="bar-positive"><div class="buttons" id="left-buttons"><button class="button button-positive button-medium filled" xattr-fullsize="" xattr-theme="button-positive" data-component="crn-button" xattr-size="button-medium" xattr-type="filled"><span>Left Button</span></button></div><h1 class="title" xattr-position="text-align: center;" style="text-align: center" id="crn-heading-title">Title!</h1><div class="buttons" id="right-buttons"><button class="button button-positive button-medium filled" xattr-fullsize="" xattr-theme="button-positive" data-component="crn-button" xattr-size="button-medium" xattr-type="filled"><span>Right Button</span></button></div></ion-footer-bar>
@@ -1 +1 @@
1
- <ion-header-bar class="bar bar-positive" data-component="crn-ion-header-bar" xattr-theme="bar-positive"><div class="buttons buttons-left header-item" data-component="crn-header-button" id="crn-header-button-1"><button class="button button-clear component-holder" menu-toggle="left"><i class="ion ion-android-menu"></i></button></div><h1 class="title" align-title="text-align: center;" style="text-align: center; left: 40px; right: 40px">Title!</h1><div class="buttons buttons-right header-item" data-component="crn-header-button" id="crn-header-button-2"><button class="button button-clear component-holder" menu-toggle="right"><i class="ion ion-android-menu"></i></button></div></ion-header-bar>
1
+ <ion-header-bar class="crn-ion-header-bar bar bar-positive" data-component="crn-ion-header-bar" xattr-theme="bar-positive"><div class="buttons buttons-left header-item" data-component="crn-header-button" id="crn-header-button-1"><button class="button button-clear component-holder" menu-toggle="left"><i class="ion ion-android-menu"></i></button></div><h1 class="title" align-title="text-align: center;" style="text-align: center">Title!</h1><div class="buttons buttons-right header-item" data-component="crn-header-button" id="crn-header-button-2"><button class="button button-clear component-holder" menu-toggle="right"><i class="ion ion-android-menu"></i></button></div></ion-header-bar>
@@ -1 +1 @@
1
- <ion-slide xattr-theme="dark-bg" id="crn-slider-item-${RANDOM}-1" data-component="crn-slider-item" class="dark-bg active" style="width: 100%; height: 200px; position: relative" data-container="true" data-replace="true"><h2 data-component="crn-label" style="color: white; font-weight: bold; top: 50%; left: 50%; margin: 0; transform: translate(-50%, -50%); position: absolute" data-container="true" data-replace="true">SLIDE TITLE</h2></ion-slide>
1
+ <ion-slide xattr-theme="positive-bg" id="crn-slider-item-${RANDOM}" data-component="crn-slider-item" class="positive-bg crn-slider-item" data-container="true" data-replace="true"><img alt="Placehold" src="node_modules/cronapp-framework-mobile-js/img/placehold-300x200.png" class="component-holder" style="object-fit: cover" xattr-position="" width="100%" height="100%" object-fit="object-fit: cover;" data-component="crn-image" id="crn-image-${RANDOM}"><h2 class="text-center top-50" data-component="crn-label" data-container="true" data-replace="true" horizontal-text-position="text-center" vertical-text-position="top-50">NEW SLIDE</h2></ion-slide>
@@ -1 +1 @@
1
- <ion-list crn-datasource="" class="listCanSwipe" id="crn-list-swipe${RANDOM}"><ion-item class="item" id="crn-list-item-swipe${RANDOM}" data-component="crn-item-swipe"><h2 class="titleItem" style="display: inline">Item</h2><div id="crn-item-options${RANDOM}" class="component-holder" data-component="crn-item-options"><div class="crn-item-options" data-item="true"><ion-option-button id="crn-option-button${RANDOM}" data-component="crn-button" class="button-positive button editButton"><i class="ion ion-edit"></i><span>Edit</span></ion-option-button><ion-option-button id="crn-option-button${RANDOM}-2" data-component="crn-button" class="button-assertive button deleteButton"><i class="ion ion-trash-a"></i><span>Delete</span></ion-option-button></div></div></ion-item></ion-list>
1
+ <ion-list crn-datasource="" class="listCanSwipe" id="crn-list-swipe${RANDOM}" data-component="crn-item-swipe"><ion-item class="item" id="crn-list-item-swipe${RANDOM}" data-component="crn-item-swipe"><h2 class="titleItem">Item</h2><div id="crn-item-options${RANDOM}" class="component-holder" data-component="crn-item-options"><div class="crn-item-options" data-item="true"><ion-option-button id="crn-option-button${RANDOM}" data-component="crn-button" class="button-positive button editButton"><i class="ion ion-edit"></i><span>Edit</span></ion-option-button><ion-option-button id="crn-option-button${RANDOM}-2" data-component="crn-button" class="button-assertive button deleteButton"><i class="ion ion-trash-a"></i><span>Delete</span></ion-option-button></div></div></ion-item></ion-list>
@@ -1 +1 @@
1
- <div class="crn-slider display-ion-slider" id="crn-slider-${COMPONENTID}"><ion-slide-box class="" auto-play="true" slide-interval="2000" does-continue="true"><ion-slide xattr-theme="positive-bg" id="crn-slider-item-${RANDOM}-1" data-component="crn-slider-item" class="positive-bg active" style="width: 100%; height: 200px; position: relative" data-container="true" data-replace="true"><h2 data-component="crn-label" style="color: white; font-weight: bold; top: 50%; left: 50%; margin: 0; transform: translate(-50%, -50%); position: absolute" data-container="true" data-replace="true">SLIDE 1</h2></ion-slide><ion-slide xattr-theme="royal-bg" id="crn-slider-item-${RANDOM}-2" data-component="crn-slider-item" class="royal-bg" style="width: 100%; height: 200px; position: relative" data-container="true" data-replace="true"><h2 data-component="crn-label" style="text-align: center; color: white; font-weight: bold; top: 50%; left: 50%; margin: 0; transform: translate(-50%, -50%); position: absolute" data-container="true" data-replace="true">SLIDE 2</h2></ion-slide><ion-slide xattr-theme="balanced-bg" id="crn-slider-item-${RANDOM}-3" data-component="crn-slider-item" class="balanced-bg" style="width: 100%; height: 200px; position: relative" data-container="true" data-replace="true"><h2 data-component="crn-label" style="text-align: center; color: white; font-weight: bold; top: 50%; left: 50%; margin: 0; transform: translate(-50%, -50%); position: absolute" data-container="true" data-replace="true">SLIDE 3</h2></ion-slide></ion-slide-box></div>
1
+ <div class="crn-slider display-ion-slider" id="crn-slider-${COMPONENTID}"><ion-slide-box class="" auto-play="false" slide-interval="2000" does-continue="false"><ion-slide xattr-theme="positive-bg" id="crn-slider-item-${RANDOM}-1" data-component="crn-slider-item" class="positive-bg active crn-slider-item" data-container="true" data-replace="true"><img alt="Placehold" src="node_modules/cronapp-framework-mobile-js/img/placehold-300x200.png" class="component-holder" style="object-fit: cover" xattr-position="" width="100%" height="100%" object-fit="object-fit: cover;" data-component="crn-image" id="crn-image-${RANDOM}"><h2 class="text-center top-50" data-component="crn-label" data-container="true" data-replace="true" horizontal-text-position="text-center" vertical-text-position="top-50">SLIDE 1</h2></ion-slide><ion-slide xattr-theme="royal-bg" id="crn-slider-item-${RANDOM}-2" data-component="crn-slider-item" class="royal-bg crn-slider-item" data-container="true" data-replace="true"><img alt="Placehold" src="node_modules/cronapp-framework-mobile-js/img/placehold-300x200.png" class="component-holder" style="object-fit: cover" xattr-position="" width="100%" height="100%" object-fit="object-fit: cover;" data-component="crn-image" id="crn-image-${RANDOM}"><h2 class="text-center top-50" data-component="crn-label" data-container="true" data-replace="true" horizontal-text-position="text-center" vertical-text-position="top-50">SLIDE 2</h2></ion-slide><ion-slide xattr-theme="balanced-bg" id="crn-slider-item-${RANDOM}-3" data-component="crn-slider-item" class="balanced-bg crn-slider-item" data-container="true" data-replace="true"><img alt="Placehold" src="node_modules/cronapp-framework-mobile-js/img/placehold-300x200.png" class="component-holder" style="object-fit: cover" xattr-position="" width="100%" height="100%" object-fit="object-fit: cover;" data-component="crn-image" id="crn-image-${RANDOM}"><h2 class="text-center top-50" data-component="crn-label" data-container="true" data-replace="true" horizontal-text-position="text-center" vertical-text-position="top-50">SLIDE 3</h2></ion-slide></ion-slide-box></div>
package/dist/css/app.css CHANGED
@@ -1 +1 @@
1
- @import 'custom-ionic.css';@import 'signup.css';@import "groupingOfCss/import_groupingOfCss.css";@import '../components/css/app.css';:root{--safe-area-inset-top:env(safe-area-inset-top);--safe-area-inset-right:env(safe-area-inset-right);--safe-area-inset-bottom:env(safe-area-inset-bottom);--safe-area-inset-left:env(safe-area-inset-left)}.platform-ios.platform-cordova:not(.fullscreen) .has-header,.platform-ios.platform-cordova:not(.fullscreen) .bar-subheader{padding-left:calc(0px + var(--safe-area-inset-left));padding-right:calc(0px + var(--safe-area-inset-right));padding-bottom:calc(0px + var(--safe-area-inset-bottom))}.bar-footer{height:calc(54px + var(--safe-area-inset-bottom, 19px));padding-left:var(--safe-area-inset-left);padding-right:var(--safe-area-inset-right)}.bar-header:not(.bar-subheader){height:calc(45px + var(--safe-area-inset-top, 19px)) !important;padding-left:var(--safe-area-inset-left);padding-right:var(--safe-area-inset-right)}.bar-header:not(.bar-subheader)>*{margin-top:var(--safe-area-inset-top,20px) !important}.bar-footer button{margin-bottom:var(--safe-area-inset-bottom)}.tabs{height:calc(44px + var(--safe-area-inset-bottom, 19px)) !important;min-height:44px}.bar .title+.button:last-child,.bar>.button+.button:last-child,.bar>.button.pull-right,.bar .buttons.pull-right,.bar .title+.buttons{margin-right:calc(5px + var(--safe-area-inset-left))}.has-header{top:calc(44px + var(--safe-area-inset-top)) !important}body{background-color:#fff}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.list .item.item-accordion{line-height:38px;padding-top:0;padding-bottom:0;transition:.09s all linear}.item{margin-top:0}.list .item.item-accordion.ng-hide{line-height:0}.list .item.item-accordion.ng-hide-add,.list .item.item-accordion.ng-hide-remove{display:block !important}.drop-box{background:#f8f8f8;border:2px dashed #DDD}.dragover{border:2px dashed blue}.input-validation-error{border-bottom:2px solid red !important}.menu-view .user-button,.login-bg .user-button{border:1px solid #aaa;color:#aaa;border-radius:100%;padding:10px;width:120px;height:120px;transition:400ms}.menu-view .user-button p,.login-bg .user-button p{color:#aaa}.user-button a{color:#aaa;text-decoration:none}.center-content-vertically{display:flex;flex-direction:column;justify-content:center}.menu-view{background-color:#1d4f9e;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.safe-top{padding-top:env(safe-area-inset-top)}#menu-blue .item{border-color:transparent;background-color:transparent;position:relative;display:block;margin:-1px;padding:16px;border-width:1px;border-style:solid;font-size:10px}.center-block{display:block;margin-right:auto;margin-left:auto}.right-block{display:block;margin-left:auto}.left-block{display:block;margin-right:auto}.item-list-detail{display:flex;flex-direction:column;padding-left:10px}.custom-item-avatar-imagem{width:40px;height:40px;border-radius:50%;background-size:cover;background-position:center;background-repeat:no-repeat;float:left}.sr-only{display:none !important}kendo-chat .k-chat{max-width:100%}kendo-chat .k-bubble{-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.icon-designtime-ion-list{display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%;font-size:32px;right:18px}.selected-designtime-list .checkbox input:checked:before,.selected-designtime-list input:checked+.selected-designtime-list .checkbox-icon:before{background:#2b71e8;border-color:#2b71e8}.bar .title{text-align:inherit}ion-header-bar.bar h1.title{text-align:center}.bar-positive .button.button-icon{align-content:center;display:grid}.bar-positive .button.button-clear i{font-size:28px}.button-bar>.button{gap:6px;display:flex}.button-bar>.button:last-child{border-right-width:inherit}.item-floating-label .input-label{display:table}.tabs-striped .tabs .tab-item .icon{display:contents}.tabs-striped .tabs .tab-item{display:flex;justify-content:center;align-items:center;flex-direction:column}.tabs-striped .tabs .tab-item span{margin:0;padding:0;font-size:10px;height:33px;margin-top:-16px}.tabs-striped .tabs{height:calc(57px + var(--safe-area-inset-bottom, 19px)) !important;min-height:57px}.has-footer-tabs{bottom:57px}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}
1
+ @import 'custom-ionic.css';@import 'signup.css';@import "groupingOfCss/import_groupingOfCss.css";@import '../components/css/app.css';:root{--safe-area-inset-top:env(safe-area-inset-top);--safe-area-inset-right:env(safe-area-inset-right);--safe-area-inset-bottom:env(safe-area-inset-bottom);--safe-area-inset-left:env(safe-area-inset-left)}.platform-ios.platform-cordova:not(.fullscreen) .has-header,.platform-ios.platform-cordova:not(.fullscreen) .bar-subheader{padding-left:calc(0px + var(--safe-area-inset-left));padding-right:calc(0px + var(--safe-area-inset-right));padding-bottom:calc(0px + var(--safe-area-inset-bottom))}.bar-footer{height:calc(44px + var(--safe-area-inset-bottom, 19px));padding-left:var(--safe-area-inset-left);padding-right:var(--safe-area-inset-right)}.bar-header:not(.bar-subheader){height:calc(45px + var(--safe-area-inset-top, 19px)) !important;padding-left:var(--safe-area-inset-left);padding-right:var(--safe-area-inset-right)}.bar-header:not(.bar-subheader)>*{margin-top:var(--safe-area-inset-top,20px) !important}.bar-footer button{margin-bottom:var(--safe-area-inset-bottom)}.tabs{height:calc(53px + var(--safe-area-inset-bottom, 19px)) !important;min-height:53px}.bar .title,.button:last-child,.bar>.button+.button:last-child,.bar>.button.pull-right,.bar .buttons.pull-right,.bar .title+.buttons{margin-right:calc(5px + var(--safe-area-inset-left))}.has-header{top:calc(44px + var(--safe-area-inset-top)) !important}body{background-color:#fff}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.list .item.item-accordion{line-height:38px;padding-top:0;padding-bottom:0;transition:.09s all linear}.item{margin-top:0}.list .item.item-accordion.ng-hide{line-height:0}.list .item.item-accordion.ng-hide-add,.list .item.item-accordion.ng-hide-remove{display:block !important}.drop-box{background:#f8f8f8;border:2px dashed #DDD}.dragover{border:2px dashed blue}.input-validation-error{border-bottom:2px solid red !important}.menu-view .user-button,.login-bg .user-button{border:1px solid #aaa;color:#aaa;border-radius:100%;padding:10px;width:120px;height:120px;transition:400ms}.menu-view .user-button p,.login-bg .user-button p{color:#aaa}.user-button a{color:#aaa;text-decoration:none}.center-content-vertically{display:flex;flex-direction:column;justify-content:center}.menu-view{background-color:#1d4f9e;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.safe-top{padding-top:env(safe-area-inset-top)}#menu-blue .item{border-color:transparent;background-color:transparent;position:relative;display:block;margin:-1px;padding:16px;border-width:1px;border-style:solid;font-size:10px}.center-block{display:block;margin-right:auto;margin-left:auto}.right-block{display:block;margin-left:auto}.left-block{display:block;margin-right:auto}.item-list-detail{display:flex;flex-direction:column;padding-left:10px}.custom-item-avatar-imagem{width:40px;height:40px;border-radius:50%;background-size:cover;background-position:center;background-repeat:no-repeat;float:left}.sr-only{display:none !important}kendo-chat .k-chat{max-width:100%}kendo-chat .k-bubble{-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.icon-designtime-ion-list{display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%;font-size:32px;right:18px}.selected-designtime-list .checkbox input:checked:before,.selected-designtime-list input:checked+.selected-designtime-list .checkbox-icon:before{background:#2b71e8;border-color:#2b71e8}.bar .title{text-align:inherit}ion-header-bar.bar h1.title{text-align:center}.bar-positive .button.button-icon{align-content:center;display:grid}.bar-positive .button.button-clear i{font-size:28px}.button-bar>.button{gap:6px;display:flex;align-items:center;justify-content:center}.button-bar>.button:last-child{border-right-width:inherit}.item-floating-label .input-label{display:table}.tabs-striped .tabs .tab-item .icon{display:contents}.tabs-striped .tabs .tab-item{display:flex;justify-content:center;align-items:center;flex-direction:column}.tabs-striped .tabs .tab-item span{margin:0;padding:0;font-size:10px;height:33px;margin-top:-16px}.tabs-striped .tabs{height:calc(57px + var(--safe-area-inset-bottom, 19px)) !important;min-height:57px}.has-footer-tabs{bottom:57px}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.crn-ion-header-bar h1.title{left:40px;right:40px}.bar-footer{display:flex;justify-content:space-between;align-items:center;width:100%}.bar-footer .button{border-color:#1659ca;margin:0}.bar-footer .buttons:last-child{margin-right:0}.bar.bar-footer{padding:5px}.bar-footer.bar .title{position:initial;width:45%}.bar-footer.bar .title+.buttons{position:initial}.crn-slider-item{height:200px;position:relative;object-fit:cover}.crn-slider-item h2{text-align:center;color:#fff;font-weight:bold;left:50%;margin:0;transform:translate(-50%,-50%);position:absolute;width:100%}.crn-slider-item h2.text-center{text-align:center !important}.crn-slider-item h2.text-left{text-align:left !important}.crn-slider-item h2.text-right{text-align:right !important}.slider-pager{bottom:5px}.slider{width:100%}.item input.ng-invalid,.item-input input.ng-invalid{border-bottom:1px solid #f15858}textarea.ng-invalid,textarea.ng-invalid-minlength{border-bottom:1px solid #f15858;margin-bottom:0}
Binary file
@@ -1 +1 @@
1
- (function(){angular.module("custom.controllers",[]),app.controller("LoginController",["$scope","$http","$location","$rootScope","$window","$state","$translate","Notification","ReportService","$ionicLoading","$timeout","$stateParams","$ionicModal","$cookies",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){function o(b){"undefined"!=typeof Storage&&localStorage.setItem("_u",JSON.stringify(b)),f.go("app.home"),a.blockly&&a.blockly.events&&a.blockly.events.onLogin&&a.blockly.events.onLogin instanceof Function&&a.blockly.events.onLogin()}function p(a){let b;if(null!==a&&a.message){let c=JSON.parse(a.message);b=c.exception}else b="string"==typeof a?a:g.instant("General.ErrorNotSpecified");h.error(b)}d.refreshToken=window.refreshToken,app.registerEventsCronapi(a,g,m,j),d.http=b,a.Notification=h,a.params=l,d.getReport=function(a,b,c){i.openReport(a,b,c)};let q=c.search();for(let o in q)q.hasOwnProperty(o)&&(a.params[o]=q[o]);for(let o in app.userEvents)app.userEvents.hasOwnProperty(o)&&(a[o]=app.userEvents[o].bind(a));if(a.redirectToLogin=function(){localStorage.setItem("redir_mob",!0),e.location.href="/login"},a.autoLogin=function(){localStorage.getItem("_u")&&JSON.parse(localStorage.getItem("_u")).token&&window.refreshToken(h,b,function(){f.go("app.home")},function(){localStorage.removeItem("_u")})},a.autoLogin(),n.get("_u")){if(!localStorage.getItem("_u")){var r=decodeURIComponent(n.get("_u"));localStorage.setItem("_u",r)}f.go("app.home")}a.user={username:"",password:""},a.message={},a.login=function(c,d,e){a.message.error=void 0;let f={username:c?c:a.user.username,password:d?d:a.user.password},g={"Content-Type":"application/x-www-form-urlencoded"};e&&(g["X-AUTH-TOKEN"]=e),window.hostApp?b({method:"POST",url:window.hostApp+"auth",data:$.param(f),headers:g}).success(o).error(p):h.error("HostApp is required!")},d.infiniteReached=function(){};try{let b=$controller("AfterLoginController",{$scope:a});app.copyContext(b,this,"AfterLoginController")}catch(a){}k(function(){a.blockly&&a.blockly.events&&a.blockly.events.afterLoginRender&&a.blockly.events.afterLoginRender instanceof Function&&a.blockly.events.afterLoginRender()})}]),app.controller("HomeController",["$scope","$http","$rootScope","$state","$timeout","$translate","Notification","$ionicHistory","$ionicModal","$ionicLoading","$stateParams","$location","$controller","UploadService","ReportService",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){app.registerEventsCronapi(a,f,i,j),c.http=b,c.Notification=g,c.UploadService=n,a.params=k,c.getReport=function(a,b,c){o.openReport(a,b,c)};let p=l.search();for(let q in p)p.hasOwnProperty(q)&&(a.params[q]=p[q]);for(let p in app.userEvents)app.userEvents.hasOwnProperty(p)&&(a[p]=app.userEvents[p].bind(a));c.session=localStorage._u?JSON.parse(localStorage._u):null,c.session?c.session.token&&window.refreshToken(g,b,function(){},c.logout):!a.ignoreAuth&&("undefined"!=typeof Storage&&sessionStorage.removeItem("_u"),d.go("login"));try{var q=m("AfterHomeController",{$scope:a});app.copyContext(q,this,"AfterHomeController")}catch(a){}e(function(){a.blockly&&a.blockly.events&&a.blockly.events.afterHomeRender&&a.blockly.events.afterHomeRender instanceof Function&&a.blockly.events.afterHomeRender()})}]),app.controller("PublicController",["$controller","$scope",function(a,b){b.ignoreAuth=!0,angular.extend(this,a("HomeController",{$scope:b}))}]),app.controller("MenuController",["$scope","$http","$rootScope","$state","$timeout","$translate","Notification","$ionicHistory","$ionicModal","$ionicLoading","$cookies",function(a,b,c,d,e,f,g,h,i,j,k){for(let l in app.registerEventsCronapi(a,f,i,j),c.http=b,a.Notification=g,a.isExtendedFromPublic||(a.folder="logged"),app.userEvents)a[l]=app.userEvents[l].bind(a);a.ignoreAuth||(a.openChangePassword=function(){a.modal.modelEl?a.modal.show():b({url:"views/logged/_changepassword.view.html"}).then(function(b){a.modal=i.fromTemplate($(b.data).last().text(),{scope:a,animation:"slide-in-up"}),a.modal.show()})},a.closeChangePassword=function(){a.modal.hide()},a.logout=function(){c.session=null,localStorage.removeItem("_u"),k.remove("_u",{path:"/"}),d.go("login")}),a.http({method:"GET",url:"views/"+a.folder+"/menu.view.html"}).then(function(b){0<$(b.data).find("ion-nav-bar").length?(a.isOldMenu=!0,0<$(document).find("ion-header-bar").length&&$(document).find("ion-nav-bar").show()):a.isOldMenu=!1})}]),app.controller("PublicMenuController",["$controller","$scope",function(a,b){b.folder="public",b.isExtendedFromPublic=!0,angular.extend(this,a("MenuController",{$scope:b}))}]),app.controller("chatController",["$scope","$state","$ionicPopup","$ionicScrollDelegate","$timeout","$interval","$ionicModal","$translate","$rootScope","$http","Notification",function(a,b,c,d,f,g,h,i,j,k,l){for(let e in app.registerEventsCronapi(a,i,h,$ionicLoading),j.http=k,a.Notification=l,app.userEvents)a[e]=app.userEvents[e].bind(a);let m,n,o,p=JSON.parse(localStorage._u).user.username,q=d.$getByHandle("userMessageScroll");a.enter=function(){f(function(){m=document.body.querySelector(".homeView .bar-footer"),n=document.body.querySelector(".homeView .scroll-content"),o=angular.element(m.querySelector("textarea"))},0)},a.isEnter=function(a){13===a.keyCode?f(function(){a.stopPropagation(),$("#sendButton").trigger("click")},0):null},a.refreshScroll=function(b,c){f(function(){b=b||a.scrollDown,q.resize(),b&&q.scrollBottom(!0),a.checkScroll()},c||1e3)},a.scrollDown=!0,a.checkScroll=function(){return f(function(){let b=q.getScrollPosition().top,c=q.getScrollView().__maxScrollTop;a.scrollDown=b>=c,a.$apply()},0),!0}}]),app.controller("PageController",["$scope","$stateParams","Notification","$location","$http","$rootScope","$translate","$ionicModal","$ionicLoading","$timeout","UploadService","ReportService",function(a,b,c,d,e,f,g,h,i,j,k,l){app.registerEventsCronapi(a,g,h,i),f.http=e,f.Notification=c,a.params=b,f.$http=e,f.UploadService=k,a.listCanSwipe=!0,f.getReport=function(a,b,c){l.openReport(a,b,c)};let m=d.search();for(let n in m)m.hasOwnProperty(n)&&(a.params[n]=m[n]);if(f.session=void 0===localStorage.getItem("_u")?null:JSON.parse(localStorage.getItem("_u")),a.registerComponentScripts=function(){$(".carousel-indicators li").on("click",function(){let a="#"+$(this).parent().parent().parent().attr("id"),b=$(a+" .carousel-indicators li").index(this);$(a+" #carousel-example-generic").carousel(b)})},a.registerComponentScripts(),a.isOldMenu){let b=a.params.name||"home";a.http({method:"GET",url:"views/logged/"+b+".view.html"}).then(function(a){0<$(a.data).find("ion-header-bar").length?$(document).find("ion-nav-bar").hide():0<$(document).find("ion-header-bar").length&&$(document).find("ion-nav-bar").show()})}try{let b=$controller("AfterPageController",{$scope:a});app.copyContext(b,this,"AfterPageController")}catch(a){}j(function(){a.blockly&&a.blockly.events&&a.blockly.events.afterPageRender&&a.blockly.events.afterPageRender instanceof Function&&a.blockly.events.afterPageRender()})}]),app.controller("InitialController",["$scope","$stateParams","$http","Notification","$location","$rootScope","$translate","$ionicModal","$ionicLoading","$ionicPlatform","$controller","$timeout","UploadService","$ionicHistory",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){j.registerBackButtonAction(function(a){let b=n.viewHistory();b.histories&&b.histories&&Object.keys(b.histories).length&&("app.home"===b.currentView.stateName?(a.preventDefault(),a.stopPropagation(),navigator.app.exitApp()):window.history.back())},101),app.registerEventsCronapi(a,g,h,i),f.http=c,f.Notification=d,f.UploadService=m,a.params=b,a.$http=c;let o=e.search();for(let p in o)o.hasOwnProperty(p)&&(a.params[p]=o[p]);a.blockly.js.blockly.auth.Home.change();try{let b=k("AfterHomeController",{$scope:a});app.copyContext(b,this,"AfterHomeController")}catch(a){}l(function(){a.blockly&&a.blockly.events&&a.blockly.events.afterHomeRender&&a.blockly.events.afterHomeRender instanceof Function&&a.blockly.events.afterHomeRender()})}])})(app),window.safeApply=function(a){let b=this.$root.$$phase;"$apply"===b||"$digest"===b?a&&"function"==typeof a&&a():this.$apply(a)};
1
+ (function(){angular.module("custom.controllers",[]),app.controller("LoginController",["$scope","$http","$location","$rootScope","$window","$state","$translate","Notification","ReportService","$ionicLoading","$timeout","$stateParams","$ionicModal","$cookies",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){function o(b){"undefined"!=typeof Storage&&localStorage.setItem("_u",JSON.stringify(b)),f.go("app.home"),a.blockly&&a.blockly.events&&a.blockly.events.onLogin&&a.blockly.events.onLogin instanceof Function&&a.blockly.events.onLogin()}function p(a){let b;if(null!==a&&a.message){let c=JSON.parse(a.message);b=c.exception}else b="string"==typeof a?a:g.instant("General.ErrorNotSpecified");h.error(b)}d.refreshToken=window.refreshToken,app.registerEventsCronapi(a,g,m,j),d.http=b,a.Notification=h,a.params=l,d.getReport=function(a,b,c){i.openReport(a,b,c)};let q=c.search();for(let o in q)q.hasOwnProperty(o)&&(a.params[o]=q[o]);for(let o in app.userEvents)app.userEvents.hasOwnProperty(o)&&(a[o]=app.userEvents[o].bind(a));if(a.redirectToLogin=function(){localStorage.setItem("redir_mob",!0),e.location.href="/login"},a.autoLogin=function(){localStorage.getItem("_u")&&JSON.parse(localStorage.getItem("_u")).token&&window.refreshToken(h,b,function(){f.go("app.home")},function(){localStorage.removeItem("_u")})},a.autoLogin(),n.get("_u")){if(!localStorage.getItem("_u")){var r=decodeURIComponent(n.get("_u"));localStorage.setItem("_u",r)}f.go("app.home")}a.user={username:"",password:""},a.message={},a.login=function(c,d,e){a.message.error=void 0;let f={username:c?c:a.user.username,password:d?d:a.user.password},g={"Content-Type":"application/x-www-form-urlencoded"};e&&(g["X-AUTH-TOKEN"]=e),window.hostApp?b({method:"POST",url:window.hostApp+"auth",data:$.param(f),headers:g}).success(o).error(p):h.error("HostApp is required!")},d.infiniteReached=function(){};try{let b=$controller("AfterLoginController",{$scope:a});app.copyContext(b,this,"AfterLoginController")}catch(a){}k(function(){a.blockly&&a.blockly.events&&a.blockly.events.afterLoginRender&&a.blockly.events.afterLoginRender instanceof Function&&a.blockly.events.afterLoginRender()})}]),app.controller("HomeController",["$scope","$http","$rootScope","$state","$timeout","$translate","Notification","$ionicHistory","$ionicModal","$ionicLoading","$stateParams","$location","$controller","UploadService","ReportService",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){app.registerEventsCronapi(a,f,i,j),c.http=b,c.Notification=g,c.UploadService=n,a.params=k,c.getReport=function(a,b,c){o.openReport(a,b,c)};let p=l.search();for(let q in p)p.hasOwnProperty(q)&&(a.params[q]=p[q]);for(let p in app.userEvents)app.userEvents.hasOwnProperty(p)&&(a[p]=app.userEvents[p].bind(a));c.session=localStorage._u?JSON.parse(localStorage._u):null,c.session?c.session.token&&window.refreshToken(g,b,function(){},c.logout):!a.ignoreAuth&&("undefined"!=typeof Storage&&sessionStorage.removeItem("_u"),d.go("login"));try{var q=m("AfterHomeController",{$scope:a});app.copyContext(q,this,"AfterHomeController")}catch(a){}e(function(){a.blockly&&a.blockly.events&&a.blockly.events.afterHomeRender&&a.blockly.events.afterHomeRender instanceof Function&&a.blockly.events.afterHomeRender()})}]),app.controller("PublicController",["$controller","$scope",function(a,b){b.ignoreAuth=!0,angular.extend(this,a("HomeController",{$scope:b}))}]),app.controller("MenuController",["$scope","$http","$rootScope","$state","$timeout","$translate","Notification","$ionicHistory","$ionicModal","$ionicLoading","$cookies",function(a,b,c,d,e,f,g,h,i,j,k){for(let l in app.registerEventsCronapi(a,f,i,j),c.http=b,a.Notification=g,a.isExtendedFromPublic||(a.folder="logged"),app.userEvents)a[l]=app.userEvents[l].bind(a);a.ignoreAuth||(a.openChangePassword=function(){a.modal.modelEl?a.modal.show():b({url:"views/logged/_changepassword.view.html"}).then(function(b){a.modal=i.fromTemplate($(b.data).last().text(),{scope:a,animation:"slide-in-up"}),a.modal.show()})},a.closeChangePassword=function(){a.modal.hide()},c.logout=function(){const a=a=>{if(c.session={},k.remove("_u",{path:"/"}),"undefined"!=typeof Storage&&localStorage.removeItem("_u"),a&&a.logoutUri){const b=cordova.InAppBrowser.open(a.logoutUri,"_blank","location=no,footer=yes,zoom=no,enableViewportScale=yes,hidenavigationbuttons=yes,clearcache=yes"),c=e=>{e.url===a.appBaseUrl&&(b.removeEventListener("loadstart",c),b.close(),d.go("login"))};b.addEventListener("loadstart",c)}else d.go("login")};b({method:"GET",url:window.hostApp+"logout",headers:{"Content-Type":"application/json"}}).success(a).error(a)}),a.http({method:"GET",url:"views/"+a.folder+"/menu.view.html"}).then(function(b){0<$(b.data).find("ion-nav-bar").length?(a.isOldMenu=!0,0<$(document).find("ion-header-bar").length&&$(document).find("ion-nav-bar").show()):a.isOldMenu=!1})}]),app.controller("PublicMenuController",["$controller","$scope",function(a,b){b.folder="public",b.isExtendedFromPublic=!0,angular.extend(this,a("MenuController",{$scope:b}))}]),app.controller("chatController",["$scope","$state","$ionicPopup","$ionicScrollDelegate","$timeout","$interval","$ionicModal","$translate","$rootScope","$http","Notification",function(a,b,c,d,f,g,h,i,j,k,l){for(let e in app.registerEventsCronapi(a,i,h,$ionicLoading),j.http=k,a.Notification=l,app.userEvents)a[e]=app.userEvents[e].bind(a);let m,n,o,p=JSON.parse(localStorage._u).user.username,q=d.$getByHandle("userMessageScroll");a.enter=function(){f(function(){m=document.body.querySelector(".homeView .bar-footer"),n=document.body.querySelector(".homeView .scroll-content"),o=angular.element(m.querySelector("textarea"))},0)},a.isEnter=function(a){13===a.keyCode?f(function(){a.stopPropagation(),$("#sendButton").trigger("click")},0):null},a.refreshScroll=function(b,c){f(function(){b=b||a.scrollDown,q.resize(),b&&q.scrollBottom(!0),a.checkScroll()},c||1e3)},a.scrollDown=!0,a.checkScroll=function(){return f(function(){let b=q.getScrollPosition().top,c=q.getScrollView().__maxScrollTop;a.scrollDown=b>=c,a.$apply()},0),!0}}]),app.controller("PageController",["$scope","$stateParams","Notification","$location","$http","$rootScope","$translate","$ionicModal","$ionicLoading","$timeout","UploadService","ReportService",function(a,b,c,d,e,f,g,h,i,j,k,l){app.registerEventsCronapi(a,g,h,i),f.http=e,f.Notification=c,a.params=b,f.$http=e,f.UploadService=k,a.listCanSwipe=!0,f.getReport=function(a,b,c){l.openReport(a,b,c)};let m=d.search();for(let n in m)m.hasOwnProperty(n)&&(a.params[n]=m[n]);if(f.session=void 0===localStorage.getItem("_u")?null:JSON.parse(localStorage.getItem("_u")),a.registerComponentScripts=function(){$(".carousel-indicators li").on("click",function(){let a="#"+$(this).parent().parent().parent().attr("id"),b=$(a+" .carousel-indicators li").index(this);$(a+" #carousel-example-generic").carousel(b)})},a.registerComponentScripts(),a.isOldMenu){let b=a.params.name||"home";a.http({method:"GET",url:"views/logged/"+b+".view.html"}).then(function(a){0<$(a.data).find("ion-header-bar").length?$(document).find("ion-nav-bar").hide():0<$(document).find("ion-header-bar").length&&$(document).find("ion-nav-bar").show()})}try{let b=$controller("AfterPageController",{$scope:a});app.copyContext(b,this,"AfterPageController")}catch(a){}j(function(){a.blockly&&a.blockly.events&&a.blockly.events.afterPageRender&&a.blockly.events.afterPageRender instanceof Function&&a.blockly.events.afterPageRender()})}]),app.controller("InitialController",["$scope","$stateParams","$http","Notification","$location","$rootScope","$translate","$ionicModal","$ionicLoading","$ionicPlatform","$controller","$timeout","UploadService","$ionicHistory",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){j.registerBackButtonAction(function(a){let b=n.viewHistory();b.histories&&b.histories&&Object.keys(b.histories).length&&("app.home"===b.currentView.stateName?(a.preventDefault(),a.stopPropagation(),navigator.app.exitApp()):window.history.back())},101),app.registerEventsCronapi(a,g,h,i),f.http=c,f.Notification=d,f.UploadService=m,a.params=b,a.$http=c;let o=e.search();for(let p in o)o.hasOwnProperty(p)&&(a.params[p]=o[p]);a.blockly.js.blockly.auth.Home.change();try{let b=k("AfterHomeController",{$scope:a});app.copyContext(b,this,"AfterHomeController")}catch(a){}l(function(){a.blockly&&a.blockly.events&&a.blockly.events.afterHomeRender&&a.blockly.events.afterHomeRender instanceof Function&&a.blockly.events.afterHomeRender()})}])})(app),window.safeApply=function(a){let b=this.$root.$$phase;"$apply"===b||"$digest"===b?a&&"function"==typeof a&&a():this.$apply(a)};