@smarterplan/ngx-smarterplan-locations 0.3.4 → 0.4.2

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 (82) hide show
  1. package/esm2022/lib/components/carousel/carousel.component.mjs +30 -0
  2. package/esm2022/lib/components/chevron/chevron.component.mjs +18 -0
  3. package/esm2022/lib/components/detail-location/detail-location.component.mjs +183 -0
  4. package/{esm2020 → esm2022}/lib/components/form-location/form-location.component.mjs +254 -237
  5. package/esm2022/lib/components/images/images.component.mjs +120 -0
  6. package/esm2022/lib/components/locations/locations.component.mjs +157 -0
  7. package/esm2022/lib/components/locations/map/map-popup/map-popup.component.mjs +72 -0
  8. package/esm2022/lib/components/locations/map/map.component.mjs +92 -0
  9. package/esm2022/lib/components/plan-legend/plan-legend.component.mjs +49 -0
  10. package/esm2022/lib/components/plans/calibration/calibration.component.mjs +494 -0
  11. package/esm2022/lib/components/plans/edit-plan/edit-plan.component.mjs +350 -0
  12. package/{esm2020 → esm2022}/lib/components/plans/plans.component.mjs +243 -225
  13. package/esm2022/lib/components/tab-navigation/tab-navigation.component.mjs +43 -0
  14. package/esm2022/lib/components/visits/visits.component.mjs +294 -0
  15. package/esm2022/lib/components/zones/add-audio-zone/add-audio-zone.component.mjs +250 -0
  16. package/esm2022/lib/components/zones/add-zone/add-zone.component.mjs +333 -0
  17. package/esm2022/lib/components/zones/add-zone/selection/selection.component.mjs +81 -0
  18. package/esm2022/lib/components/zones/add-zone/sweep-plan-selection/sweep-plan-selection.component.mjs +518 -0
  19. package/esm2022/lib/components/zones/zones.component.mjs +291 -0
  20. package/{esm2020 → esm2022}/lib/helper.service.mjs +133 -133
  21. package/esm2022/lib/ngx-smarterplan-location-routing.module.mjs +50 -0
  22. package/esm2022/lib/ngx-smarterplan-locations.module.mjs +124 -0
  23. package/esm2022/lib/ngx-smarterplan-locations.service.mjs +15 -0
  24. package/esm2022/lib/pipes/count-audio-sweeps.pipe.mjs +29 -0
  25. package/esm2022/lib/radio-button/radio-button.component.mjs +28 -0
  26. package/{esm2020 → esm2022}/public-api.mjs +8 -8
  27. package/{esm2020 → esm2022}/smarterplan-ngx-smarterplan-locations.mjs +4 -4
  28. package/{fesm2020 → fesm2022}/smarterplan-ngx-smarterplan-locations.mjs +3959 -3738
  29. package/fesm2022/smarterplan-ngx-smarterplan-locations.mjs.map +1 -0
  30. package/index.d.ts +5 -5
  31. package/lib/components/carousel/carousel.component.d.ts +12 -12
  32. package/lib/components/chevron/chevron.component.d.ts +9 -9
  33. package/lib/components/detail-location/detail-location.component.d.ts +55 -55
  34. package/lib/components/form-location/form-location.component.d.ts +45 -45
  35. package/lib/components/images/images.component.d.ts +33 -33
  36. package/lib/components/locations/locations.component.d.ts +51 -51
  37. package/lib/components/locations/map/map-popup/map-popup.component.d.ts +22 -22
  38. package/lib/components/locations/map/map.component.d.ts +21 -22
  39. package/lib/components/plan-legend/plan-legend.component.d.ts +14 -14
  40. package/lib/components/plans/calibration/calibration.component.d.ts +140 -140
  41. package/lib/components/plans/edit-plan/edit-plan.component.d.ts +55 -55
  42. package/lib/components/plans/plans.component.d.ts +63 -63
  43. package/lib/components/tab-navigation/tab-navigation.component.d.ts +13 -13
  44. package/lib/components/visits/visits.component.d.ts +63 -63
  45. package/lib/components/zones/add-audio-zone/add-audio-zone.component.d.ts +63 -63
  46. package/lib/components/zones/add-zone/add-zone.component.d.ts +69 -69
  47. package/lib/components/zones/add-zone/selection/selection.component.d.ts +44 -44
  48. package/lib/components/zones/add-zone/sweep-plan-selection/sweep-plan-selection.component.d.ts +107 -107
  49. package/lib/components/zones/zones.component.d.ts +73 -73
  50. package/lib/helper.service.d.ts +53 -53
  51. package/lib/ngx-smarterplan-location-routing.module.d.ts +7 -7
  52. package/lib/ngx-smarterplan-locations.module.d.ts +36 -36
  53. package/lib/ngx-smarterplan-locations.service.d.ts +6 -6
  54. package/lib/pipes/count-audio-sweeps.pipe.d.ts +10 -10
  55. package/lib/radio-button/radio-button.component.d.ts +12 -12
  56. package/package.json +13 -19
  57. package/public-api.d.ts +4 -4
  58. package/esm2020/lib/components/carousel/carousel.component.mjs +0 -28
  59. package/esm2020/lib/components/chevron/chevron.component.mjs +0 -18
  60. package/esm2020/lib/components/detail-location/detail-location.component.mjs +0 -168
  61. package/esm2020/lib/components/images/images.component.mjs +0 -107
  62. package/esm2020/lib/components/locations/locations.component.mjs +0 -145
  63. package/esm2020/lib/components/locations/map/map-popup/map-popup.component.mjs +0 -66
  64. package/esm2020/lib/components/locations/map/map.component.mjs +0 -91
  65. package/esm2020/lib/components/plan-legend/plan-legend.component.mjs +0 -47
  66. package/esm2020/lib/components/plans/calibration/calibration.component.mjs +0 -468
  67. package/esm2020/lib/components/plans/edit-plan/edit-plan.component.mjs +0 -324
  68. package/esm2020/lib/components/tab-navigation/tab-navigation.component.mjs +0 -41
  69. package/esm2020/lib/components/visits/visits.component.mjs +0 -275
  70. package/esm2020/lib/components/zones/add-audio-zone/add-audio-zone.component.mjs +0 -230
  71. package/esm2020/lib/components/zones/add-zone/add-zone.component.mjs +0 -315
  72. package/esm2020/lib/components/zones/add-zone/selection/selection.component.mjs +0 -77
  73. package/esm2020/lib/components/zones/add-zone/sweep-plan-selection/sweep-plan-selection.component.mjs +0 -502
  74. package/esm2020/lib/components/zones/zones.component.mjs +0 -268
  75. package/esm2020/lib/ngx-smarterplan-location-routing.module.mjs +0 -49
  76. package/esm2020/lib/ngx-smarterplan-locations.module.mjs +0 -123
  77. package/esm2020/lib/ngx-smarterplan-locations.service.mjs +0 -14
  78. package/esm2020/lib/pipes/count-audio-sweeps.pipe.mjs +0 -27
  79. package/esm2020/lib/radio-button/radio-button.component.mjs +0 -26
  80. package/fesm2015/smarterplan-ngx-smarterplan-locations.mjs +0 -3983
  81. package/fesm2015/smarterplan-ngx-smarterplan-locations.mjs.map +0 -1
  82. package/fesm2020/smarterplan-ngx-smarterplan-locations.mjs.map +0 -1
@@ -1,134 +1,134 @@
1
- export var SweepState;
2
- (function (SweepState) {
3
- SweepState[SweepState["ADDED"] = 0] = "ADDED";
4
- SweepState[SweepState["REMOVED"] = 1] = "REMOVED";
5
- SweepState[SweepState["DISABLED"] = 2] = "DISABLED";
6
- SweepState[SweepState["OCCUPIED"] = 3] = "OCCUPIED";
7
- SweepState[SweepState["STARTPOINT"] = 4] = "STARTPOINT";
8
- })(SweepState || (SweepState = {}));
9
- export function isInPolygon(p, polygon) {
10
- let isInside = false;
11
- let minX = polygon[0].x;
12
- let maxX = polygon[0].x;
13
- let minY = polygon[0].y;
14
- let maxY = polygon[0].y;
15
- for (let n = 1; n < polygon.length; n++) {
16
- const q = polygon[n];
17
- minX = Math.min(q.x, minX);
18
- maxX = Math.max(q.x, maxX);
19
- minY = Math.min(q.y, minY);
20
- maxY = Math.max(q.y, maxY);
21
- }
22
- if (p.x < minX || p.x > maxX || p.y < minY || p.y > maxY) {
23
- return false;
24
- }
25
- for (let index = 0, index_ = polygon.length - 1; index < polygon.length; index_ = index++) {
26
- if (polygon[index].y > p.y !== polygon[index_].y > p.y &&
27
- p.x <
28
- ((polygon[index_].x - polygon[index].x) *
29
- (p.y - polygon[index].y)) /
30
- (polygon[index_].y - polygon[index].y) +
31
- polygon[index].x) {
32
- isInside = !isInside;
33
- }
34
- }
35
- return isInside;
36
- }
37
- export function rotate(point, center, angle) {
38
- let xM;
39
- let yM;
40
- let x;
41
- let y;
42
- angle *= Math.PI / 180;
43
- xM = point.x - center.x;
44
- yM = point.y - center.y;
45
- x = xM * Math.cos(angle) + yM * Math.sin(angle) + center.x;
46
- y = -xM * Math.sin(angle) + yM * Math.cos(angle) + center.y;
47
- return { x: Math.round(x), y: Math.round(y) };
48
- }
49
- /**
50
- * Check if an HtmlElement is inside a selection
51
- * @param button HTMLElement
52
- * @param selection
53
- * @returns true if the element is inside the selection, false otherwise
54
- */
55
- export function buttonIsInSelection(button, selection) {
56
- const bounds = button.getBoundingClientRect();
57
- return (bounds.bottom > selection.top &&
58
- bounds.top < selection.top + selection.height &&
59
- bounds.right > selection.left &&
60
- bounds.left < selection.left + selection.width);
61
- }
62
- /**
63
- * Styles the button that represents a sweep on the plan: green-added to zone, red -not added, gray - disabled, orange - occupied
64
- * @param button HTMLButtonElement, button on the plan,
65
- * @param isAdded boolean, if the sweep added to the zone
66
- * @param isOccupied boolean, if the sweep added to any other zone (but not current)
67
- */
68
- export function styleButton(button, state) {
69
- switch (state) {
70
- case SweepState.ADDED:
71
- button.style.backgroundImage = `url("https://api.iconify.design/mdi:adjust.svg?color=green&height=17&width=17")`;
72
- break;
73
- case SweepState.DISABLED:
74
- button.style.backgroundImage = `url("https://api.iconify.design/mdi:close-circle-outline.svg?color=black&height=17&width=17")`;
75
- button.style.cursor = "auto";
76
- break;
77
- case SweepState.OCCUPIED:
78
- button.style.backgroundImage = `url("https://api.iconify.design/mdi:adjust.svg?color=orange&height=17&width=17")`;
79
- break;
80
- case SweepState.STARTPOINT:
81
- button.style.backgroundImage = `url('https://api.iconify.design/ic/baseline-flag-circle.svg?color=white&width=17&height=17')`;
82
- break;
83
- case SweepState.REMOVED:
84
- button.style.backgroundImage = `url("https://api.iconify.design/mdi:close-circle-outline.svg?color=red&height=17&width=17")`;
85
- break;
86
- default:
87
- button.style.backgroundImage = `url("https://api.iconify.design/mdi:close-circle-outline.svg?color=red&height=17&width=17")`;
88
- break;
89
- }
90
- // if (disabled) {
91
- // button.style.backgroundImage = `url("https://api.iconify.design/mdi:close-circle-outline.svg?color=#636363&height=17&width=17")`;
92
- // button.style.cursor = "auto";
93
- // } else if (isOccupied) {
94
- // button.style.backgroundImage = `url("https://api.iconify.design/mdi:adjust.svg?color=orange&height=17&width=17")`;
95
- // } else {
96
- // button.style.backgroundImage = isAdded
97
- // ? `url("https://api.iconify.design/mdi:adjust.svg?color=green&height=17&width=17")`
98
- // : `url("https://api.iconify.design/mdi:close-circle-outline.svg?color=red&height=17&width=17")`;
99
- // }
100
- button.style.backgroundColor = "transparent";
101
- button.style.position = "absolute";
102
- button.style.border = "none";
103
- button.style.width = "17px";
104
- button.style.height = "17px";
105
- button.disabled = false;
106
- button.type = "button";
107
- }
108
- /**
109
- * Check if sweep (button) is chosen; it is reprsented by image style "mdi:adjust"
110
- * @param button HTMLElement
111
- * @returns boolean, if button was selected
112
- */
113
- export function buttonIsChosen(button) {
114
- return button.style.backgroundImage.includes("adjust");
115
- }
116
- /**
117
- * Visually change the state of a scan button, a selected button is blue
118
- * @param button HTMLElement
119
- * @param selected if true the button will be blue, otherwise it will red or green
120
- */
121
- export function setVisuallySelected(button, selected) {
122
- if (selected) {
123
- /** Color in blue */
124
- button.style.backgroundImage = button.style.backgroundImage
125
- .replace("red", "blue")
126
- .replace("green", "blue");
127
- }
128
- else {
129
- /** Get back in red or green */
130
- const color = buttonIsChosen(button) ? "green" : "red";
131
- button.style.backgroundImage = button.style.backgroundImage.replace("blue", color);
132
- }
133
- }
1
+ export var SweepState;
2
+ (function (SweepState) {
3
+ SweepState[SweepState["ADDED"] = 0] = "ADDED";
4
+ SweepState[SweepState["REMOVED"] = 1] = "REMOVED";
5
+ SweepState[SweepState["DISABLED"] = 2] = "DISABLED";
6
+ SweepState[SweepState["OCCUPIED"] = 3] = "OCCUPIED";
7
+ SweepState[SweepState["STARTPOINT"] = 4] = "STARTPOINT";
8
+ })(SweepState || (SweepState = {}));
9
+ export function isInPolygon(p, polygon) {
10
+ let isInside = false;
11
+ let minX = polygon[0].x;
12
+ let maxX = polygon[0].x;
13
+ let minY = polygon[0].y;
14
+ let maxY = polygon[0].y;
15
+ for (let n = 1; n < polygon.length; n++) {
16
+ const q = polygon[n];
17
+ minX = Math.min(q.x, minX);
18
+ maxX = Math.max(q.x, maxX);
19
+ minY = Math.min(q.y, minY);
20
+ maxY = Math.max(q.y, maxY);
21
+ }
22
+ if (p.x < minX || p.x > maxX || p.y < minY || p.y > maxY) {
23
+ return false;
24
+ }
25
+ for (let index = 0, index_ = polygon.length - 1; index < polygon.length; index_ = index++) {
26
+ if (polygon[index].y > p.y !== polygon[index_].y > p.y &&
27
+ p.x <
28
+ ((polygon[index_].x - polygon[index].x) *
29
+ (p.y - polygon[index].y)) /
30
+ (polygon[index_].y - polygon[index].y) +
31
+ polygon[index].x) {
32
+ isInside = !isInside;
33
+ }
34
+ }
35
+ return isInside;
36
+ }
37
+ export function rotate(point, center, angle) {
38
+ let xM;
39
+ let yM;
40
+ let x;
41
+ let y;
42
+ angle *= Math.PI / 180;
43
+ xM = point.x - center.x;
44
+ yM = point.y - center.y;
45
+ x = xM * Math.cos(angle) + yM * Math.sin(angle) + center.x;
46
+ y = -xM * Math.sin(angle) + yM * Math.cos(angle) + center.y;
47
+ return { x: Math.round(x), y: Math.round(y) };
48
+ }
49
+ /**
50
+ * Check if an HtmlElement is inside a selection
51
+ * @param button HTMLElement
52
+ * @param selection
53
+ * @returns true if the element is inside the selection, false otherwise
54
+ */
55
+ export function buttonIsInSelection(button, selection) {
56
+ const bounds = button.getBoundingClientRect();
57
+ return (bounds.bottom > selection.top &&
58
+ bounds.top < selection.top + selection.height &&
59
+ bounds.right > selection.left &&
60
+ bounds.left < selection.left + selection.width);
61
+ }
62
+ /**
63
+ * Styles the button that represents a sweep on the plan: green-added to zone, red -not added, gray - disabled, orange - occupied
64
+ * @param button HTMLButtonElement, button on the plan,
65
+ * @param isAdded boolean, if the sweep added to the zone
66
+ * @param isOccupied boolean, if the sweep added to any other zone (but not current)
67
+ */
68
+ export function styleButton(button, state) {
69
+ switch (state) {
70
+ case SweepState.ADDED:
71
+ button.style.backgroundImage = `url("https://api.iconify.design/mdi:adjust.svg?color=green&height=17&width=17")`;
72
+ break;
73
+ case SweepState.DISABLED:
74
+ button.style.backgroundImage = `url("https://api.iconify.design/mdi:close-circle-outline.svg?color=black&height=17&width=17")`;
75
+ button.style.cursor = "auto";
76
+ break;
77
+ case SweepState.OCCUPIED:
78
+ button.style.backgroundImage = `url("https://api.iconify.design/mdi:adjust.svg?color=orange&height=17&width=17")`;
79
+ break;
80
+ case SweepState.STARTPOINT:
81
+ button.style.backgroundImage = `url('https://api.iconify.design/ic/baseline-flag-circle.svg?color=white&width=17&height=17')`;
82
+ break;
83
+ case SweepState.REMOVED:
84
+ button.style.backgroundImage = `url("https://api.iconify.design/mdi:close-circle-outline.svg?color=red&height=17&width=17")`;
85
+ break;
86
+ default:
87
+ button.style.backgroundImage = `url("https://api.iconify.design/mdi:close-circle-outline.svg?color=red&height=17&width=17")`;
88
+ break;
89
+ }
90
+ // if (disabled) {
91
+ // button.style.backgroundImage = `url("https://api.iconify.design/mdi:close-circle-outline.svg?color=#636363&height=17&width=17")`;
92
+ // button.style.cursor = "auto";
93
+ // } else if (isOccupied) {
94
+ // button.style.backgroundImage = `url("https://api.iconify.design/mdi:adjust.svg?color=orange&height=17&width=17")`;
95
+ // } else {
96
+ // button.style.backgroundImage = isAdded
97
+ // ? `url("https://api.iconify.design/mdi:adjust.svg?color=green&height=17&width=17")`
98
+ // : `url("https://api.iconify.design/mdi:close-circle-outline.svg?color=red&height=17&width=17")`;
99
+ // }
100
+ button.style.backgroundColor = "transparent";
101
+ button.style.position = "absolute";
102
+ button.style.border = "none";
103
+ button.style.width = "17px";
104
+ button.style.height = "17px";
105
+ button.disabled = false;
106
+ button.type = "button";
107
+ }
108
+ /**
109
+ * Check if sweep (button) is chosen; it is reprsented by image style "mdi:adjust"
110
+ * @param button HTMLElement
111
+ * @returns boolean, if button was selected
112
+ */
113
+ export function buttonIsChosen(button) {
114
+ return button.style.backgroundImage.includes("adjust");
115
+ }
116
+ /**
117
+ * Visually change the state of a scan button, a selected button is blue
118
+ * @param button HTMLElement
119
+ * @param selected if true the button will be blue, otherwise it will red or green
120
+ */
121
+ export function setVisuallySelected(button, selected) {
122
+ if (selected) {
123
+ /** Color in blue */
124
+ button.style.backgroundImage = button.style.backgroundImage
125
+ .replace("red", "blue")
126
+ .replace("green", "blue");
127
+ }
128
+ else {
129
+ /** Get back in red or green */
130
+ const color = buttonIsChosen(button) ? "green" : "red";
131
+ button.style.backgroundImage = button.style.backgroundImage.replace("blue", color);
132
+ }
133
+ }
134
134
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tbG9jYXRpb25zL3NyYy9saWIvaGVscGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxDQUFOLElBQVksVUFNWDtBQU5ELFdBQVksVUFBVTtJQUNsQiw2Q0FBSyxDQUFBO0lBQ0wsaURBQU8sQ0FBQTtJQUNQLG1EQUFRLENBQUE7SUFDUixtREFBUSxDQUFBO0lBQ1IsdURBQVUsQ0FBQTtBQUNkLENBQUMsRUFOVyxVQUFVLEtBQVYsVUFBVSxRQU1yQjtBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsQ0FBc0IsRUFBRSxPQUF1QjtJQUV2RSxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDckIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNyQyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckIsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUks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biAgICB0b3A6IG51bWJlcjtcclxuICAgIGxlZnQ6IG51bWJlcjtcclxuICAgIHdpZHRoOiBudW1iZXI7XHJcbiAgICBoZWlnaHQ6IG51bWJlcjtcclxufTtcclxuXHJcbmV4cG9ydCBlbnVtIFN3ZWVwU3RhdGUge1xyXG4gICAgQURERUQsXHJcbiAgICBSRU1PVkVELFxyXG4gICAgRElTQUJMRUQsXHJcbiAgICBPQ0NVUElFRCxcclxuICAgIFNUQVJUUE9JTlRcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzSW5Qb2x5Z29uKHA6IHsgeDogYW55OyB5OiBhbnk7IH0sIHBvbHlnb246IHN0cmluZyB8IGFueVtdKTogYm9vbGVhbiB7XHJcblxyXG4gICAgbGV0IGlzSW5zaWRlID0gZmFsc2U7XHJcbiAgICBsZXQgbWluWCA9IHBvbHlnb25bMF0ueDtcclxuICAgIGxldCBtYXhYID0gcG9seWdvblswXS54O1xyXG4gICAgbGV0IG1pblkgPSBwb2x5Z29uWzBdLnk7XHJcbiAgICBsZXQgbWF4WSA9IHBvbHlnb25bMF0ueTtcclxuICAgIGZvciAobGV0IG4gPSAxOyBuIDwgcG9seWdvbi5sZW5ndGg7IG4rKykge1xyXG4gICAgICAgIGNvbnN0IHEgPSBwb2x5Z29uW25dO1xyXG4gICAgICAgIG1pblggPSBNYXRoLm1pbihxLngsIG1pblgpO1xyXG4gICAgICAgIG1heFggPSBNYXRoLm1heChxLngsIG1heFgpO1xyXG4gICAgICAgIG1pblkgPSBNYXRoLm1pbihxLnksIG1pblkpO1xyXG4gICAgICAgIG1heFkgPSBNYXRoLm1heChxLnksIG1heFkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChwLnggPCBtaW5YIHx8IHAueCA+IG1heFggfHwgcC55IDwgbWluWSB8fCBwLnkgPiBtYXhZKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAoXHJcbiAgICAgICAgbGV0IGluZGV4ID0gMCwgaW5kZXhfID0gcG9seWdvbi5sZW5ndGggLSAxO1xyXG4gICAgICAgIGluZGV4IDwgcG9seWdvbi5sZW5ndGg7XHJcbiAgICAgICAgaW5kZXhfID0gaW5kZXgrK1xyXG4gICAgKSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBwb2x5Z29uW2luZGV4XS55ID4gcC55ICE9PSBwb2x5Z29uW2luZGV4X10ueSA+IHAueSAmJlxyXG4gICAgICAgICAgICBwLnggPFxyXG4gICAgICAgICAgICAoKHBvbHlnb25baW5kZXhfXS54IC0gcG9seWdvbltpbmRleF0ueCkgKlxyXG4gICAgICAgICAgICAgICAgKHAueSAtIHBvbHlnb25baW5kZXhdLnkpKSAvXHJcbiAgICAgICAgICAgIChwb2x5Z29uW2luZGV4X10ueSAtIHBvbHlnb25baW5kZXhdLnkpICtcclxuICAgICAgICAgICAgcG9seWdvbltpbmRleF0ueFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICBpc0luc2lkZSA9ICFpc0luc2lkZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXNJbnNpZGU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByb3RhdGUocG9pbnQ6IHsgeDogYW55OyB5OiBhbnk7IH0sIGNlbnRlcjogeyB4OiBhbnk7IHk6IGFueTsgfSwgYW5nbGU6IG51bWJlcikge1xyXG4gICAgbGV0IHhNO1xyXG4gICAgbGV0IHlNO1xyXG4gICAgbGV0IHg7XHJcbiAgICBsZXQgeTtcclxuICAgIGFuZ2xlICo9IE1hdGguUEkgLyAxODA7XHJcbiAgICB4TSA9IHBvaW50LnggLSBjZW50ZXIueDtcclxuICAgIHlNID0gcG9pbnQueSAtIGNlbnRlci55O1xyXG4gICAgeCA9IHhNICogTWF0aC5jb3MoYW5nbGUpICsgeU0gKiBNYXRoLnNpbihhbmdsZSkgKyBjZW50ZXIueDtcclxuICAgIHkgPSAteE0gKiBNYXRoLnNpbihhbmdsZSkgKyB5TSAqIE1hdGguY29zKGFuZ2xlKSArIGNlbnRlci55O1xyXG4gICAgcmV0dXJuIHsgeDogTWF0aC5yb3VuZCh4KSwgeTogTWF0aC5yb3VuZCh5KSB9O1xyXG59XHJcblxyXG4vKipcclxuICAgICogQ2hlY2sgaWYgYW4gSHRtbEVsZW1lbnQgaXMgaW5zaWRlIGEgc2VsZWN0aW9uXHJcbiAgICAqIEBwYXJhbSBidXR0b24gSFRNTEVsZW1lbnRcclxuICAgICogQHBhcmFtIHNlbGVjdGlvblxyXG4gICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBlbGVtZW50IGlzIGluc2lkZSB0aGUgc2VsZWN0aW9uLCBmYWxzZSBvdGhlcndpc2VcclxuICAgICovXHJcbmV4cG9ydCBmdW5jdGlvbiBidXR0b25Jc0luU2VsZWN0aW9uKFxyXG4gICAgYnV0dG9uOiBIVE1MQnV0dG9uRWxlbWVudCxcclxuICAgIHNlbGVjdGlvbjogUmVjdGFuZ2xlLFxyXG4pOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGJvdW5kcyA9IGJ1dHRvbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgYm91bmRzLmJvdHRvbSA+IHNlbGVjdGlvbi50b3AgJiZcclxuICAgICAgICBib3VuZHMudG9wIDwgc2VsZWN0aW9uLnRvcCArIHNlbGVjdGlvbi5oZWlnaHQgJiZcclxuICAgICAgICBib3VuZHMucmlnaHQgPiBzZWxlY3Rpb24ubGVmdCAmJlxyXG4gICAgICAgIGJvdW5kcy5sZWZ0IDwgc2VsZWN0aW9uLmxlZnQgKyBzZWxlY3Rpb24ud2lkdGhcclxuICAgICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTdHlsZXMgdGhlIGJ1dHRvbiB0aGF0IHJlcHJlc2VudHMgYSBzd2VlcCBvbiB0aGUgcGxhbjogZ3JlZW4tYWRkZWQgdG8gem9uZSwgcmVkIC1ub3QgYWRkZWQsIGdyYXkgLSBkaXNhYmxlZCwgb3JhbmdlIC0gb2NjdXBpZWRcclxuICogQHBhcmFtIGJ1dHRvbiBIVE1MQnV0dG9uRWxlbWVudCwgYnV0dG9uIG9uIHRoZSBwbGFuLCBcclxuICogQHBhcmFtIGlzQWRkZWQgYm9vbGVhbiwgaWYgdGhlIHN3ZWVwIGFkZGVkIHRvIHRoZSB6b25lXHJcbiAqIEBwYXJhbSBpc09jY3VwaWVkIGJvb2xlYW4sIGlmIHRoZSBzd2VlcCBhZGRlZCB0byBhbnkgb3RoZXIgem9uZSAoYnV0IG5vdCBjdXJyZW50KVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHN0eWxlQnV0dG9uKGJ1dHRvbjogSFRNTEJ1dHRvbkVsZW1lbnQsIHN0YXRlOiBTd2VlcFN0YXRlKSB7XHJcbiAgICBzd2l0Y2ggKHN0YXRlKSB7XHJcbiAgICAgICAgY2FzZSBTd2VlcFN0YXRlLkFEREVEOlxyXG4gICAgICAgICAgICBidXR0b24uc3R5bGUuYmFja2dyb3VuZEltYWdlID0gYHVybChcImh0dHBzOi8vYXBpLmljb25pZnkuZGVzaWduL21kaTphZGp1c3Quc3ZnP2NvbG9yPWdyZWVuJmhlaWdodD0xNyZ3aWR0aD0xN1wiKWA7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgU3dlZXBTdGF0ZS5ESVNBQkxFRDpcclxuICAgICAgICAgICAgYnV0dG9uLnN0eWxlLmJhY2tncm91bmRJbWFnZSA9IGB1cmwoXCJodHRwczovL2FwaS5pY29uaWZ5LmRlc2lnbi9tZGk6Y2xvc2UtY2lyY2xlLW91dGxpbmUuc3ZnP2NvbG9yPWJsYWNrJmhlaWdodD0xNyZ3aWR0aD0xN1wiKWA7XHJcbiAgICAgICAgICAgIGJ1dHRvbi5zdHlsZS5jdXJzb3IgPSBcImF1dG9cIjtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBTd2VlcFN0YXRlLk9DQ1VQSUVEOlxyXG4gICAgICAgICAgICBidXR0b24uc3R5bGUuYmFja2dyb3VuZEltYWdlID0gYHVybChcImh0dHBzOi8vYXBpLmljb25pZnkuZGVzaWduL21kaTphZGp1c3Quc3ZnP2NvbG9yPW9yYW5nZSZoZWlnaHQ9MTcmd2lkdGg9MTdcIilgO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFN3ZWVwU3RhdGUuU1RBUlRQT0lOVDpcclxuICAgICAgICAgICAgYnV0dG9uLnN0eWxlLmJhY2tncm91bmRJbWFnZSA9IGB1cmwoJ2h0dHBzOi8vYXBpLmljb25pZnkuZGVzaWduL2ljL2Jhc2VsaW5lLWZsYWctY2lyY2xlLnN2Zz9jb2xvcj13aGl0ZSZ3aWR0aD0xNyZoZWlnaHQ9MTcnKWA7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgU3dlZXBTdGF0ZS5SRU1PVkVEOlxyXG4gICAgICAgICAgICBidXR0b24uc3R5bGUuYmFja2dyb3VuZEltYWdlID0gYHVybChcImh0dHBzOi8vYXBpLmljb25pZnkuZGVzaWduL21kaTpjbG9zZS1jaXJjbGUtb3V0bGluZS5zdmc/Y29sb3I9cmVkJmhlaWdodD0xNyZ3aWR0aD0xN1wiKWA7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGJ1dHRvbi5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSBgdXJsKFwiaHR0cHM6Ly9hcGkuaWNvbmlmeS5kZXNpZ24vbWRpOmNsb3NlLWNpcmNsZS1vdXRsaW5lLnN2Zz9jb2xvcj1yZWQmaGVpZ2h0PTE3JndpZHRoPTE3XCIpYDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICAvLyBpZiAoZGlzYWJsZWQpIHtcclxuICAgIC8vICAgICBidXR0b24uc3R5bGUuYmFja2dyb3VuZEltYWdlID0gYHVybChcImh0dHBzOi8vYXBpLmljb25pZnkuZGVzaWduL21kaTpjbG9zZS1jaXJjbGUtb3V0bGluZS5zdmc/Y29sb3I9IzYzNjM2MyZoZWlnaHQ9MTcmd2lkdGg9MTdcIilgO1xyXG4gICAgLy8gICAgIGJ1dHRvbi5zdHlsZS5jdXJzb3IgPSBcImF1dG9cIjtcclxuICAgIC8vIH0gZWxzZSBpZiAoaXNPY2N1cGllZCkge1xyXG4gICAgLy8gICAgIGJ1dHRvbi5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSBgdXJsKFwiaHR0cHM6Ly9hcGkuaWNvbmlmeS5kZXNpZ24vbWRpOmFkanVzdC5zdmc/Y29sb3I9b3JhbmdlJmhlaWdodD0xNyZ3aWR0aD0xN1wiKWA7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICAgIGJ1dHRvbi5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSBpc0FkZGVkXHJcbiAgICAvLyAgICAgICAgID8gYHVybChcImh0dHBzOi8vYXBpLmljb25pZnkuZGVzaWduL21kaTphZGp1c3Quc3ZnP2NvbG9yPWdyZWVuJmhlaWdodD0xNyZ3aWR0aD0xN1wiKWBcclxuICAgIC8vICAgICAgICAgOiBgdXJsKFwiaHR0cHM6Ly9hcGkuaWNvbmlmeS5kZXNpZ24vbWRpOmNsb3NlLWNpcmNsZS1vdXRsaW5lLnN2Zz9jb2xvcj1yZWQmaGVpZ2h0PTE3JndpZHRoPTE3XCIpYDtcclxuICAgIC8vIH1cclxuICAgIGJ1dHRvbi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBcInRyYW5zcGFyZW50XCI7XHJcbiAgICBidXR0b24uc3R5bGUucG9zaXRpb24gPSBcImFic29sdXRlXCI7XHJcbiAgICBidXR0b24uc3R5bGUuYm9yZGVyID0gXCJub25lXCI7XHJcbiAgICBidXR0b24uc3R5bGUud2lkdGggPSBcIjE3cHhcIjtcclxuICAgIGJ1dHRvbi5zdHlsZS5oZWlnaHQgPSBcIjE3cHhcIjtcclxuICAgIGJ1dHRvbi5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgYnV0dG9uLnR5cGUgPSBcImJ1dHRvblwiO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2sgaWYgc3dlZXAgKGJ1dHRvbikgaXMgY2hvc2VuOyBpdCBpcyByZXByc2VudGVkIGJ5IGltYWdlIHN0eWxlIFwibWRpOmFkanVzdFwiXHJcbiAqIEBwYXJhbSBidXR0b24gSFRNTEVsZW1lbnRcclxuICogQHJldHVybnMgYm9vbGVhbiwgaWYgYnV0dG9uIHdhcyBzZWxlY3RlZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGJ1dHRvbklzQ2hvc2VuKGJ1dHRvbjogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBidXR0b24uc3R5bGUuYmFja2dyb3VuZEltYWdlLmluY2x1ZGVzKFwiYWRqdXN0XCIpO1xyXG59XHJcblxyXG4vKipcclxuICAgICAqIFZpc3VhbGx5IGNoYW5nZSB0aGUgc3RhdGUgb2YgYSBzY2FuIGJ1dHRvbiwgYSBzZWxlY3RlZCBidXR0b24gaXMgYmx1ZVxyXG4gICAgICogQHBhcmFtIGJ1dHRvbiBIVE1MRWxlbWVudFxyXG4gICAgICogQHBhcmFtIHNlbGVjdGVkIGlmIHRydWUgdGhlIGJ1dHRvbiB3aWxsIGJlIGJsdWUsIG90aGVyd2lzZSBpdCB3aWxsIHJlZCBvciBncmVlblxyXG4gICAgICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRWaXN1YWxseVNlbGVjdGVkKGJ1dHRvbjogSFRNTEVsZW1lbnQsIHNlbGVjdGVkOiBib29sZWFuKSB7XHJcbiAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAgICAvKiogQ29sb3IgaW4gYmx1ZSAqL1xyXG4gICAgICAgIGJ1dHRvbi5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSBidXR0b24uc3R5bGUuYmFja2dyb3VuZEltYWdlXHJcbiAgICAgICAgICAgIC5yZXBsYWNlKFwicmVkXCIsIFwiYmx1ZVwiKVxyXG4gICAgICAgICAgICAucmVwbGFjZShcImdyZWVuXCIsIFwiYmx1ZVwiKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLyoqIEdldCBiYWNrIGluIHJlZCBvciBncmVlbiAqL1xyXG4gICAgICAgIGNvbnN0IGNvbG9yID0gYnV0dG9uSXNDaG9zZW4oYnV0dG9uKSA/IFwiZ3JlZW5cIiA6IFwicmVkXCI7XHJcbiAgICAgICAgYnV0dG9uLnN0eWxlLmJhY2tncm91bmRJbWFnZSA9IGJ1dHRvbi5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UucmVwbGFjZShcclxuICAgICAgICAgICAgXCJibHVlXCIsXHJcbiAgICAgICAgICAgIGNvbG9yLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn0iXX0=
@@ -0,0 +1,50 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { RouterModule } from "@angular/router";
3
+ import { CalibrationComponent } from "./components/plans/calibration/calibration.component";
4
+ import { DetailLocationComponent } from "./components/detail-location/detail-location.component";
5
+ import { EditPlanComponent } from "./components/plans/edit-plan/edit-plan.component";
6
+ import { ImagesComponent } from "./components/images/images.component";
7
+ import { LocationsComponent } from "./components/locations/locations.component";
8
+ import { PlansComponent } from "./components/plans/plans.component";
9
+ import { VisitsComponent } from "./components/visits/visits.component";
10
+ import { ZonesComponent } from "./components/zones/zones.component";
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@angular/router";
13
+ const routes = [
14
+ {
15
+ path: "",
16
+ component: LocationsComponent,
17
+ },
18
+ {
19
+ path: ":id",
20
+ children: [
21
+ { path: "", component: DetailLocationComponent },
22
+ { path: "zones", component: ZonesComponent },
23
+ { path: "visits", component: VisitsComponent },
24
+ { path: "plans", component: PlansComponent },
25
+ {
26
+ path: "plan-calibration",
27
+ component: CalibrationComponent,
28
+ },
29
+ {
30
+ path: "plan-edit",
31
+ component: EditPlanComponent,
32
+ },
33
+ { path: "images", component: ImagesComponent },
34
+ ],
35
+ },
36
+ ];
37
+ class LocationsRoutingModule {
38
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocationsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
39
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: LocationsRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] });
40
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocationsRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
41
+ }
42
+ export { LocationsRoutingModule };
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocationsRoutingModule, decorators: [{
44
+ type: NgModule,
45
+ args: [{
46
+ imports: [RouterModule.forChild(routes)],
47
+ exports: [RouterModule],
48
+ }]
49
+ }] });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNtYXJ0ZXJwbGFuLWxvY2F0aW9uLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWxvY2F0aW9ucy9zcmMvbGliL25neC1zbWFydGVycGxhbi1sb2NhdGlvbi1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQUVwRSxNQUFNLE1BQU0sR0FBVztJQUNuQjtRQUNJLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLGtCQUFrQjtLQUNoQztJQUNEO1FBQ0ksSUFBSSxFQUFFLEtBQUs7UUFDWCxRQUFRLEVBQUU7WUFDTixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFO1lBQ2hELEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFO1lBQzVDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO1lBQzlDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFO1lBQzVDO2dCQUNJLElBQUksRUFBRSxrQkFBa0I7Z0JBQ3hCLFNBQVMsRUFBRSxvQkFBb0I7YUFDbEM7WUFDRDtnQkFDSSxJQUFJLEVBQUUsV0FBVztnQkFDakIsU0FBUyxFQUFFLGlCQUFpQjthQUMvQjtZQUNELEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO1NBQ2pEO0tBQ0o7Q0FDRixDQUFDO0FBRUosTUFJYSxzQkFBc0I7d0dBQXRCLHNCQUFzQjt5R0FBdEIsc0JBQXNCLHdDQUZyQixZQUFZO3lHQUViLHNCQUFzQixZQUhyQixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUM3QixZQUFZOztTQUViLHNCQUFzQjs0RkFBdEIsc0JBQXNCO2tCQUpsQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJvdXRlcywgUm91dGVyTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBDYWxpYnJhdGlvbkNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvcGxhbnMvY2FsaWJyYXRpb24vY2FsaWJyYXRpb24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IERldGFpbExvY2F0aW9uQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9kZXRhaWwtbG9jYXRpb24vZGV0YWlsLWxvY2F0aW9uLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBFZGl0UGxhbkNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvcGxhbnMvZWRpdC1wbGFuL2VkaXQtcGxhbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgSW1hZ2VzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9pbWFnZXMvaW1hZ2VzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBMb2NhdGlvbnNDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2xvY2F0aW9ucy9sb2NhdGlvbnMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFBsYW5zQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFucy9wbGFucy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVmlzaXRzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy92aXNpdHMvdmlzaXRzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBab25lc0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvem9uZXMvem9uZXMuY29tcG9uZW50XCI7XHJcblxyXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcclxuICAgIHtcclxuICAgICAgICBwYXRoOiBcIlwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogTG9jYXRpb25zQ29tcG9uZW50LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBwYXRoOiBcIjppZFwiLFxyXG4gICAgICAgIGNoaWxkcmVuOiBbXHJcbiAgICAgICAgICAgIHsgcGF0aDogXCJcIiwgY29tcG9uZW50OiBEZXRhaWxMb2NhdGlvbkNvbXBvbmVudCB9LFxyXG4gICAgICAgICAgICB7IHBhdGg6IFwiem9uZXNcIiwgY29tcG9uZW50OiBab25lc0NvbXBvbmVudCB9LFxyXG4gICAgICAgICAgICB7IHBhdGg6IFwidmlzaXRzXCIsIGNvbXBvbmVudDogVmlzaXRzQ29tcG9uZW50IH0sXHJcbiAgICAgICAgICAgIHsgcGF0aDogXCJwbGFuc1wiLCBjb21wb25lbnQ6IFBsYW5zQ29tcG9uZW50IH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHBhdGg6IFwicGxhbi1jYWxpYnJhdGlvblwiLFxyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBDYWxpYnJhdGlvbkNvbXBvbmVudCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcGF0aDogXCJwbGFuLWVkaXRcIixcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRWRpdFBsYW5Db21wb25lbnQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgcGF0aDogXCJpbWFnZXNcIiwgY29tcG9uZW50OiBJbWFnZXNDb21wb25lbnQgfSxcclxuICAgICAgICBdLFxyXG4gICAgfSxcclxuICBdO1xyXG4gIFxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXSxcclxuICAgIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYXRpb25zUm91dGluZ01vZHVsZSB7IH0iXX0=
@@ -0,0 +1,124 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { LocationsComponent } from './components/locations/locations.component';
3
+ import { DetailLocationComponent } from './components/detail-location/detail-location.component';
4
+ import { CalibrationComponent } from './components/plans/calibration/calibration.component';
5
+ import { PlansComponent } from './components/plans/plans.component';
6
+ import { VisitsComponent } from './components/visits/visits.component';
7
+ import { ZonesComponent } from './components/zones/zones.component';
8
+ import { ImagesComponent } from './components/images/images.component';
9
+ import { EditPlanComponent } from './components/plans/edit-plan/edit-plan.component';
10
+ import { LocationsRoutingModule } from './ngx-smarterplan-location-routing.module';
11
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
12
+ import { TabNavigationComponent } from './components/tab-navigation/tab-navigation.component';
13
+ import { MapComponent } from './components/locations/map/map.component';
14
+ import { LeafletModule } from '@asymmetrik/ngx-leaflet';
15
+ import { TranslateModule } from '@ngx-translate/core';
16
+ import { MapPopupComponent } from './components/locations/map/map-popup/map-popup.component';
17
+ import { CommonModule } from '@angular/common';
18
+ import { FormLocationComponent } from './components/form-location/form-location.component';
19
+ import { NgbAlertModule, NgbModule } from "@ng-bootstrap/ng-bootstrap";
20
+ import { ClipboardModule } from "@angular/cdk/clipboard";
21
+ import { ChevronComponent } from './components/chevron/chevron.component';
22
+ import { AddZoneComponent } from './components/zones/add-zone/add-zone.component';
23
+ import { SelectionComponent } from './components/zones/add-zone/selection/selection.component';
24
+ import { CarouselComponent } from './components/carousel/carousel.component';
25
+ import { NgxSmarterplanCoreModule } from '@smarterplan/ngx-smarterplan-core';
26
+ import { PdfViewerModule } from 'ng2-pdf-viewer';
27
+ import { SweepPlanSelectionComponent } from './components/zones/add-zone/sweep-plan-selection/sweep-plan-selection.component';
28
+ import { AddAudioZoneComponent } from './components/zones/add-audio-zone/add-audio-zone.component';
29
+ import { RadioButtonComponent } from './radio-button/radio-button.component';
30
+ import { PlanLegendComponent } from './components/plan-legend/plan-legend.component';
31
+ import { CountAudioSweepsPipe } from './pipes/count-audio-sweeps.pipe';
32
+ import * as i0 from "@angular/core";
33
+ import * as i1 from "@ngx-translate/core";
34
+ class NgxSmarterplanLocationsModule {
35
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgxSmarterplanLocationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
36
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NgxSmarterplanLocationsModule, declarations: [LocationsComponent,
37
+ DetailLocationComponent,
38
+ CalibrationComponent,
39
+ PlansComponent,
40
+ VisitsComponent,
41
+ ZonesComponent,
42
+ ImagesComponent,
43
+ EditPlanComponent,
44
+ TabNavigationComponent,
45
+ MapComponent,
46
+ MapPopupComponent,
47
+ FormLocationComponent,
48
+ ChevronComponent,
49
+ AddZoneComponent,
50
+ SelectionComponent,
51
+ CarouselComponent,
52
+ SweepPlanSelectionComponent,
53
+ AddAudioZoneComponent,
54
+ RadioButtonComponent,
55
+ PlanLegendComponent,
56
+ CountAudioSweepsPipe], imports: [PdfViewerModule,
57
+ ClipboardModule,
58
+ NgbModule,
59
+ NgbAlertModule,
60
+ CommonModule, i1.TranslateModule, LeafletModule,
61
+ FormsModule,
62
+ ReactiveFormsModule,
63
+ NgxSmarterplanCoreModule,
64
+ LocationsRoutingModule], exports: [MapComponent, TabNavigationComponent] });
65
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgxSmarterplanLocationsModule, imports: [PdfViewerModule,
66
+ ClipboardModule,
67
+ NgbModule,
68
+ NgbAlertModule,
69
+ CommonModule,
70
+ TranslateModule.forChild({
71
+ extend: true
72
+ }),
73
+ LeafletModule,
74
+ FormsModule,
75
+ ReactiveFormsModule,
76
+ NgxSmarterplanCoreModule,
77
+ LocationsRoutingModule] });
78
+ }
79
+ export { NgxSmarterplanLocationsModule };
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgxSmarterplanLocationsModule, decorators: [{
81
+ type: NgModule,
82
+ args: [{
83
+ declarations: [
84
+ LocationsComponent,
85
+ DetailLocationComponent,
86
+ CalibrationComponent,
87
+ PlansComponent,
88
+ VisitsComponent,
89
+ ZonesComponent,
90
+ ImagesComponent,
91
+ EditPlanComponent,
92
+ TabNavigationComponent,
93
+ MapComponent,
94
+ MapPopupComponent,
95
+ FormLocationComponent,
96
+ ChevronComponent,
97
+ AddZoneComponent,
98
+ SelectionComponent,
99
+ CarouselComponent,
100
+ SweepPlanSelectionComponent,
101
+ AddAudioZoneComponent,
102
+ RadioButtonComponent,
103
+ PlanLegendComponent,
104
+ CountAudioSweepsPipe,
105
+ ],
106
+ imports: [
107
+ PdfViewerModule,
108
+ ClipboardModule,
109
+ NgbModule,
110
+ NgbAlertModule,
111
+ CommonModule,
112
+ TranslateModule.forChild({
113
+ extend: true
114
+ }),
115
+ LeafletModule,
116
+ FormsModule,
117
+ ReactiveFormsModule,
118
+ NgxSmarterplanCoreModule,
119
+ LocationsRoutingModule,
120
+ ],
121
+ exports: [MapComponent, TabNavigationComponent]
122
+ }]
123
+ }] });
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNtYXJ0ZXJwbGFuLWxvY2F0aW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tbG9jYXRpb25zL3NyYy9saWIvbmd4LXNtYXJ0ZXJwbGFuLWxvY2F0aW9ucy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDckYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFN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d0JBQ2IsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIsc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsc0JBQXNCLENBQUM7aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTG9jYXRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xvY2F0aW9ucy9sb2NhdGlvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGV0YWlsTG9jYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGV0YWlsLWxvY2F0aW9uL2RldGFpbC1sb2NhdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDYWxpYnJhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wbGFucy9jYWxpYnJhdGlvbi9jYWxpYnJhdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQbGFuc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wbGFucy9wbGFucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWaXNpdHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdmlzaXRzL3Zpc2l0cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBab25lc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy96b25lcy96b25lcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbWFnZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaW1hZ2VzL2ltYWdlcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFZGl0UGxhbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wbGFucy9lZGl0LXBsYW4vZWRpdC1wbGFuLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExvY2F0aW9uc1JvdXRpbmdNb2R1bGUgfSBmcm9tICcuL25neC1zbWFydGVycGxhbi1sb2NhdGlvbi1yb3V0aW5nLm1vZHVsZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUYWJOYXZpZ2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYi1uYXZpZ2F0aW9uL3RhYi1uYXZpZ2F0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hcENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sb2NhdGlvbnMvbWFwL21hcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMZWFmbGV0TW9kdWxlIH0gZnJvbSAnQGFzeW1tZXRyaWsvbmd4LWxlYWZsZXQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgTWFwUG9wdXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbG9jYXRpb25zL21hcC9tYXAtcG9wdXAvbWFwLXBvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1Mb2NhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb3JtLWxvY2F0aW9uL2Zvcm0tbG9jYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmdiQWxlcnRNb2R1bGUsIE5nYk1vZHVsZSB9IGZyb20gXCJAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcFwiO1xyXG5pbXBvcnQgeyBDbGlwYm9hcmRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2NsaXBib2FyZFwiO1xyXG5pbXBvcnQgeyBDaGV2cm9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NoZXZyb24vY2hldnJvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBZGRab25lQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3pvbmVzL2FkZC16b25lL2FkZC16b25lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlbGVjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy96b25lcy9hZGQtem9uZS9zZWxlY3Rpb24vc2VsZWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENhcm91c2VsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Nhcm91c2VsL2Nhcm91c2VsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5neFNtYXJ0ZXJwbGFuQ29yZU1vZHVsZSB9IGZyb20gJ0BzbWFydGVycGxhbi9uZ3gtc21hcnRlcnBsYW4tY29yZSc7XHJcbmltcG9ydCB7IFBkZlZpZXdlck1vZHVsZSB9IGZyb20gJ25nMi1wZGYtdmlld2VyJztcclxuaW1wb3J0IHsgU3dlZXBQbGFuU2VsZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3pvbmVzL2FkZC16b25lL3N3ZWVwLXBsYW4tc2VsZWN0aW9uL3N3ZWVwLXBsYW4tc2VsZWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFkZEF1ZGlvWm9uZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy96b25lcy9hZGQtYXVkaW8tem9uZS9hZGQtYXVkaW8tem9uZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSYWRpb0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vcmFkaW8tYnV0dG9uL3JhZGlvLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQbGFuTGVnZW5kQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BsYW4tbGVnZW5kL3BsYW4tbGVnZW5kLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvdW50QXVkaW9Td2VlcHNQaXBlIH0gZnJvbSAnLi9waXBlcy9jb3VudC1hdWRpby1zd2VlcHMucGlwZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgTG9jYXRpb25zQ29tcG9uZW50LFxyXG4gICAgRGV0YWlsTG9jYXRpb25Db21wb25lbnQsXHJcbiAgICBDYWxpYnJhdGlvbkNvbXBvbmVudCxcclxuICAgIFBsYW5zQ29tcG9uZW50LFxyXG4gICAgVmlzaXRzQ29tcG9uZW50LFxyXG4gICAgWm9uZXNDb21wb25lbnQsXHJcbiAgICBJbWFnZXNDb21wb25lbnQsXHJcbiAgICBFZGl0UGxhbkNvbXBvbmVudCxcclxuICAgIFRhYk5hdmlnYXRpb25Db21wb25lbnQsXHJcbiAgICBNYXBDb21wb25lbnQsXHJcbiAgICBNYXBQb3B1cENvbXBvbmVudCxcclxuICAgIEZvcm1Mb2NhdGlvbkNvbXBvbmVudCxcclxuICAgIENoZXZyb25Db21wb25lbnQsXHJcbiAgICBBZGRab25lQ29tcG9uZW50LFxyXG4gICAgU2VsZWN0aW9uQ29tcG9uZW50LFxyXG4gICAgQ2Fyb3VzZWxDb21wb25lbnQsXHJcbiAgICBTd2VlcFBsYW5TZWxlY3Rpb25Db21wb25lbnQsXHJcbiAgICBBZGRBdWRpb1pvbmVDb21wb25lbnQsXHJcbiAgICBSYWRpb0J1dHRvbkNvbXBvbmVudCxcclxuICAgIFBsYW5MZWdlbmRDb21wb25lbnQsXHJcbiAgICBDb3VudEF1ZGlvU3dlZXBzUGlwZSxcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIFBkZlZpZXdlck1vZHVsZSxcclxuICAgIENsaXBib2FyZE1vZHVsZSxcclxuICAgIE5nYk1vZHVsZSxcclxuICAgIE5nYkFsZXJ0TW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKHtcclxuICAgICAgZXh0ZW5kOiB0cnVlXHJcbiAgICB9KSxcclxuICAgIExlYWZsZXRNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBOZ3hTbWFydGVycGxhbkNvcmVNb2R1bGUsXHJcbiAgICBMb2NhdGlvbnNSb3V0aW5nTW9kdWxlLFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW01hcENvbXBvbmVudCwgVGFiTmF2aWdhdGlvbkNvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5neFNtYXJ0ZXJwbGFuTG9jYXRpb25zTW9kdWxlIHsgfVxyXG4iXX0=
@@ -0,0 +1,15 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ class NgxSmarterplanLocationsService {
4
+ constructor() { }
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgxSmarterplanLocationsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgxSmarterplanLocationsService, providedIn: 'root' });
7
+ }
8
+ export { NgxSmarterplanLocationsService };
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgxSmarterplanLocationsService, decorators: [{
10
+ type: Injectable,
11
+ args: [{
12
+ providedIn: 'root'
13
+ }]
14
+ }], ctorParameters: function () { return []; } });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNtYXJ0ZXJwbGFuLWxvY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWxvY2F0aW9ucy9zcmMvbGliL25neC1zbWFydGVycGxhbi1sb2NhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzQyxNQUdhLDhCQUE4QjtJQUV6QyxnQkFBZ0IsQ0FBQzt3R0FGTiw4QkFBOEI7NEdBQTlCLDhCQUE4QixjQUY3QixNQUFNOztTQUVQLDhCQUE4Qjs0RkFBOUIsOEJBQThCO2tCQUgxQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE5neFNtYXJ0ZXJwbGFuTG9jYXRpb25zU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcbn1cclxuIl19
@@ -0,0 +1,29 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@smarterplan/ngx-smarterplan-core";
4
+ class CountAudioSweepsPipe {
5
+ zoneService;
6
+ constructor(zoneService) {
7
+ this.zoneService = zoneService;
8
+ }
9
+ async transform(zone) {
10
+ let childrenAudioZones = await this.zoneService.getZonesByParentZone(zone.id);
11
+ if (childrenAudioZones.length > 0) {
12
+ childrenAudioZones = childrenAudioZones.filter((zone) => zone.audioID);
13
+ if (childrenAudioZones.length > 0) {
14
+ return childrenAudioZones.flatMap((z) => z.sweepIDs).length;
15
+ }
16
+ }
17
+ return 0;
18
+ }
19
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CountAudioSweepsPipe, deps: [{ token: i1.ZoneService }], target: i0.ɵɵFactoryTarget.Pipe });
20
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: CountAudioSweepsPipe, name: "countAudioSweeps" });
21
+ }
22
+ export { CountAudioSweepsPipe };
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CountAudioSweepsPipe, decorators: [{
24
+ type: Pipe,
25
+ args: [{
26
+ name: 'countAudioSweeps'
27
+ }]
28
+ }], ctorParameters: function () { return [{ type: i1.ZoneService }]; } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnQtYXVkaW8tc3dlZXBzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tbG9jYXRpb25zL3NyYy9saWIvcGlwZXMvY291bnQtYXVkaW8tc3dlZXBzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7OztBQUdwRCxNQUdhLG9CQUFvQjtJQUNUO0lBQXBCLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUksQ0FBQztJQUVqRCxLQUFLLENBQUMsU0FBUyxDQUFDLElBQVU7UUFDdEIsSUFBSSxrQkFBa0IsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLElBQUksa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvQixrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2RSxJQUFJLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQy9CLE9BQU8sa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDO2FBQy9EO1NBQ0o7UUFDRCxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7d0dBWlEsb0JBQW9CO3NHQUFwQixvQkFBb0I7O1NBQXBCLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQUhoQyxJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxrQkFBa0I7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBab25lLCBab25lU2VydmljZSB9IGZyb20gJ0BzbWFydGVycGxhbi9uZ3gtc21hcnRlcnBsYW4tY29yZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgICBuYW1lOiAnY291bnRBdWRpb1N3ZWVwcydcclxufSlcclxuZXhwb3J0IGNsYXNzIENvdW50QXVkaW9Td2VlcHNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHpvbmVTZXJ2aWNlOiBab25lU2VydmljZSkgeyB9XHJcblxyXG4gICAgYXN5bmMgdHJhbnNmb3JtKHpvbmU6IFpvbmUpOiBQcm9taXNlPG51bWJlcj4ge1xyXG4gICAgICAgIGxldCBjaGlsZHJlbkF1ZGlvWm9uZXMgPSBhd2FpdCB0aGlzLnpvbmVTZXJ2aWNlLmdldFpvbmVzQnlQYXJlbnRab25lKHpvbmUuaWQpO1xyXG4gICAgICAgIGlmIChjaGlsZHJlbkF1ZGlvWm9uZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjaGlsZHJlbkF1ZGlvWm9uZXMgPSBjaGlsZHJlbkF1ZGlvWm9uZXMuZmlsdGVyKCh6b25lKSA9PiB6b25lLmF1ZGlvSUQpO1xyXG4gICAgICAgICAgICBpZiAoY2hpbGRyZW5BdWRpb1pvbmVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbkF1ZGlvWm9uZXMuZmxhdE1hcCgoeikgPT4gei5zd2VlcElEcykubGVuZ3RoO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,28 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/forms";
4
+ import * as i2 from "@ngx-translate/core";
5
+ class RadioButtonComponent {
6
+ label;
7
+ isCheckedEvent = new EventEmitter();
8
+ isChecked;
9
+ constructor() { }
10
+ ngOnInit() {
11
+ this.isChecked = false;
12
+ }
13
+ onChecked() {
14
+ this.isCheckedEvent.emit(this.isChecked);
15
+ }
16
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
17
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RadioButtonComponent, selector: "lib-radio-button", inputs: { label: "label" }, outputs: { isCheckedEvent: "isCheckedEvent" }, ngImport: i0, template: "<div class=\"checkboxContainer\">\r\n <div class=\"switchContainer\">\r\n <label class=\"switch switch-success\">\r\n <input type=\"checkbox\" [(ngModel)]=\"isChecked\" (change)=\"onChecked()\">\r\n <span class=\"slider round\"></span>\r\n </label>\r\n </div>\r\n <span class=\"label right\">{{label | translate}}</span>\r\n</div>", styles: [".checkboxContainer{display:flex;flex-direction:row;align-items:center;width:calc(20vw + 1rem)}.checkboxContainer .label{margin-left:1rem}.checkboxContainer .switch{position:relative;display:inline-block;cursor:pointer;width:60px;height:34px;border-radius:34px}.checkboxContainer .switch input{opacity:0;width:0;height:0}.checkboxContainer .switch input:checked+.slider{background-color:#404660;box-shadow:4px 4px 10px #40466080}.checkboxContainer .switch input:checked+.slider:before{background:#fff;transform:translate(26px)}.checkboxContainer .switch .label{position:absolute;top:7px}.checkboxContainer .switch .label.right{left:60px;margin-left:10px}.checkboxContainer .switch .slider{position:absolute;cursor:pointer;inset:0;border:1px solid #404660;transition:.3s;border-radius:34px}.checkboxContainer .switch .slider:before:hover{background-color:#fff}.checkboxContainer .switch .slider:before{position:absolute;content:\"\";height:26px;width:26px;left:4px;bottom:3px;background-color:#404660;transition:.3s;border-radius:50%}.checkboxContainer .switch.switch-success input:checked+.slider{background-color:var(--smarterplan-primary);box-shadow:2px 2px 10px 0 var(--smarterplan-primary)}.checkboxContainer .switch.switch-success .slider{border:1px solid var(--smarterplan-primary)}.checkboxContainer .switch.switch-success .slider:before{background-color:var(--smarterplan-primary);box-shadow:2px 2px 10px 0 var(--smarterplan-primary)}.checkboxContainer .switch.switch-default input:checked+.slider{background-color:#636983;box-shadow:2px 2px 10px #636983}.checkboxContainer .switch.switch-default .slider{border:1px solid #636983}.checkboxContainer .switch.switch-default .slider:before{background-color:#636983;box-shadow:2px 2px 10px #636983}.checkboxContainer .switch.switch-warning input:checked+.slider{background-color:#973c3c;box-shadow:2px 2px 10px #ff9898}.checkboxContainer .switch.switch-warning .slider{border:1px solid #973c3c}.checkboxContainer .switch.switch-warning .slider:before{background-color:#973c3c;box-shadow:2px 2px 10px #ff9898}.checkboxContainer .switch.switch-dark input:checked+.slider{background-color:#505050;box-shadow:2px 2px 10px #9d9d9d}.checkboxContainer .switch.switch-dark .slider{border:1px solid #505050}.checkboxContainer .switch.switch-dark .slider:before{background-color:#505050;box-shadow:2px 2px 10px #9d9d9d}\n"], dependencies: [{ kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
18
+ }
19
+ export { RadioButtonComponent };
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioButtonComponent, decorators: [{
21
+ type: Component,
22
+ args: [{ selector: 'lib-radio-button', template: "<div class=\"checkboxContainer\">\r\n <div class=\"switchContainer\">\r\n <label class=\"switch switch-success\">\r\n <input type=\"checkbox\" [(ngModel)]=\"isChecked\" (change)=\"onChecked()\">\r\n <span class=\"slider round\"></span>\r\n </label>\r\n </div>\r\n <span class=\"label right\">{{label | translate}}</span>\r\n</div>", styles: [".checkboxContainer{display:flex;flex-direction:row;align-items:center;width:calc(20vw + 1rem)}.checkboxContainer .label{margin-left:1rem}.checkboxContainer .switch{position:relative;display:inline-block;cursor:pointer;width:60px;height:34px;border-radius:34px}.checkboxContainer .switch input{opacity:0;width:0;height:0}.checkboxContainer .switch input:checked+.slider{background-color:#404660;box-shadow:4px 4px 10px #40466080}.checkboxContainer .switch input:checked+.slider:before{background:#fff;transform:translate(26px)}.checkboxContainer .switch .label{position:absolute;top:7px}.checkboxContainer .switch .label.right{left:60px;margin-left:10px}.checkboxContainer .switch .slider{position:absolute;cursor:pointer;inset:0;border:1px solid #404660;transition:.3s;border-radius:34px}.checkboxContainer .switch .slider:before:hover{background-color:#fff}.checkboxContainer .switch .slider:before{position:absolute;content:\"\";height:26px;width:26px;left:4px;bottom:3px;background-color:#404660;transition:.3s;border-radius:50%}.checkboxContainer .switch.switch-success input:checked+.slider{background-color:var(--smarterplan-primary);box-shadow:2px 2px 10px 0 var(--smarterplan-primary)}.checkboxContainer .switch.switch-success .slider{border:1px solid var(--smarterplan-primary)}.checkboxContainer .switch.switch-success .slider:before{background-color:var(--smarterplan-primary);box-shadow:2px 2px 10px 0 var(--smarterplan-primary)}.checkboxContainer .switch.switch-default input:checked+.slider{background-color:#636983;box-shadow:2px 2px 10px #636983}.checkboxContainer .switch.switch-default .slider{border:1px solid #636983}.checkboxContainer .switch.switch-default .slider:before{background-color:#636983;box-shadow:2px 2px 10px #636983}.checkboxContainer .switch.switch-warning input:checked+.slider{background-color:#973c3c;box-shadow:2px 2px 10px #ff9898}.checkboxContainer .switch.switch-warning .slider{border:1px solid #973c3c}.checkboxContainer .switch.switch-warning .slider:before{background-color:#973c3c;box-shadow:2px 2px 10px #ff9898}.checkboxContainer .switch.switch-dark input:checked+.slider{background-color:#505050;box-shadow:2px 2px 10px #9d9d9d}.checkboxContainer .switch.switch-dark .slider{border:1px solid #505050}.checkboxContainer .switch.switch-dark .slider:before{background-color:#505050;box-shadow:2px 2px 10px #9d9d9d}\n"] }]
23
+ }], ctorParameters: function () { return []; }, propDecorators: { label: [{
24
+ type: Input
25
+ }], isCheckedEvent: [{
26
+ type: Output
27
+ }] } });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1sb2NhdGlvbnMvc3JjL2xpYi9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1sb2NhdGlvbnMvc3JjL2xpYi9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFFL0UsTUFLYSxvQkFBb0I7SUFFcEIsS0FBSyxDQUFTO0lBRWIsY0FBYyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFFdkQsU0FBUyxDQUFVO0lBRW5CLGdCQUFnQixDQUFDO0lBRWpCLFFBQVE7UUFDSixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3QyxDQUFDO3dHQWhCUSxvQkFBb0I7NEZBQXBCLG9CQUFvQixtSUNQakMsK1ZBUU07O1NERE8sb0JBQW9COzRGQUFwQixvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0ksa0JBQWtCOzBFQU1uQixLQUFLO3NCQUFiLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdsaWItcmFkaW8tYnV0dG9uJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9yYWRpby1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFJhZGlvQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG5cclxuICAgIEBPdXRwdXQoKSBpc0NoZWNrZWRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgICBpc0NoZWNrZWQ6IGJvb2xlYW47XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzQ2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hlY2tlZCgpIHtcclxuICAgICAgICB0aGlzLmlzQ2hlY2tlZEV2ZW50LmVtaXQodGhpcy5pc0NoZWNrZWQpO1xyXG4gICAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2hlY2tib3hDb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwic3dpdGNoQ29udGFpbmVyXCI+XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJzd2l0Y2ggc3dpdGNoLXN1Y2Nlc3NcIj5cclxuICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwiaXNDaGVja2VkXCIgKGNoYW5nZSk9XCJvbkNoZWNrZWQoKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInNsaWRlciByb3VuZFwiPjwvc3Bhbj5cclxuICAgIDwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcbiAgPHNwYW4gY2xhc3M9XCJsYWJlbCByaWdodFwiPnt7bGFiZWwgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuPC9kaXY+Il19
@@ -1,9 +1,9 @@
1
- /*
2
- * Public API Surface of ngx-smarterplan-locations
3
- */
4
- export * from './lib/ngx-smarterplan-locations.service';
5
- export * from './lib/ngx-smarterplan-locations.module';
6
- // Components
7
- export * from './lib/components/locations/map/map.component';
8
- export * from './lib/components/tab-navigation/tab-navigation.component';
1
+ /*
2
+ * Public API Surface of ngx-smarterplan-locations
3
+ */
4
+ export * from './lib/ngx-smarterplan-locations.service';
5
+ export * from './lib/ngx-smarterplan-locations.module';
6
+ // Components
7
+ export * from './lib/components/locations/map/map.component';
8
+ export * from './lib/components/tab-navigation/tab-navigation.component';
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1sb2NhdGlvbnMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsd0NBQXdDLENBQUM7QUFFdkQsYUFBYTtBQUViLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYywwREFBMEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3gtc21hcnRlcnBsYW4tbG9jYXRpb25zXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LXNtYXJ0ZXJwbGFuLWxvY2F0aW9ucy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LXNtYXJ0ZXJwbGFuLWxvY2F0aW9ucy5tb2R1bGUnO1xyXG5cclxuLy8gQ29tcG9uZW50c1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sb2NhdGlvbnMvbWFwL21hcC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RhYi1uYXZpZ2F0aW9uL3RhYi1uYXZpZ2F0aW9uLmNvbXBvbmVudCc7XHJcbiJdfQ==
@@ -1,5 +1,5 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
5
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRlcnBsYW4tbmd4LXNtYXJ0ZXJwbGFuLWxvY2F0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1sb2NhdGlvbnMvc3JjL3NtYXJ0ZXJwbGFuLW5neC1zbWFydGVycGxhbi1sb2NhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==