@wavemaker/app-ng-runtime 11.11.4-rc.6172 → 11.11.5-rc.214
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/base/bundles/index.umd.js +1 -1
- package/components/base/esm2022/widgets/common/base/base-field-validations.mjs +2 -2
- package/components/base/fesm2022/index.mjs +1 -1
- package/components/base/fesm2022/index.mjs.map +1 -1
- package/components/data/form/bundles/index.umd.js +20 -1
- package/components/data/form/esm2022/form-action/form-action.directive.mjs +5 -2
- package/components/data/form/esm2022/form-field/form-field.directive.mjs +2 -1
- package/components/data/form/esm2022/form.component.mjs +15 -1
- package/components/data/form/esm2022/form.props.mjs +2 -1
- package/components/data/form/fesm2022/index.mjs +20 -1
- package/components/data/form/fesm2022/index.mjs.map +1 -1
- package/components/data/form/form.component.d.ts +1 -0
- package/components/data/list/bundles/index.umd.js +53 -10
- package/components/data/list/esm2022/list.component.mjs +51 -10
- package/components/data/list/esm2022/list.props.mjs +4 -2
- package/components/data/list/fesm2022/index.mjs +53 -10
- package/components/data/list/fesm2022/index.mjs.map +1 -1
- package/components/data/list/list.component.d.ts +7 -0
- package/components/data/pagination/bundles/index.umd.js +502 -106
- package/components/data/pagination/esm2022/pagination.component.mjs +500 -105
- package/components/data/pagination/esm2022/pagination.props.mjs +4 -1
- package/components/data/pagination/fesm2022/index.mjs +502 -104
- package/components/data/pagination/fesm2022/index.mjs.map +1 -1
- package/components/data/pagination/pagination.component.d.ts +21 -1
- package/components/data/table/bundles/index.umd.js +89 -11
- package/components/data/table/esm2022/table-column/table-column.directive.mjs +3 -2
- package/components/data/table/esm2022/table-column/table-column.props.mjs +2 -1
- package/components/data/table/esm2022/table.component.mjs +82 -12
- package/components/data/table/esm2022/table.props.mjs +7 -1
- package/components/data/table/fesm2022/index.mjs +90 -12
- package/components/data/table/fesm2022/index.mjs.map +1 -1
- package/components/data/table/table-column/table-column.directive.d.ts +1 -0
- package/components/data/table/table.component.d.ts +17 -0
- package/components/input/epoch/base-date-time.component.d.ts +3 -1
- package/components/input/epoch/bundles/index.umd.js +123 -65
- package/components/input/epoch/esm2022/base-date-time.component.mjs +31 -20
- package/components/input/epoch/esm2022/date/date.component.mjs +5 -6
- package/components/input/epoch/esm2022/date-time/date-time.component.mjs +45 -22
- package/components/input/epoch/esm2022/date-time/date-time.props.mjs +3 -2
- package/components/input/epoch/esm2022/time/time.component.mjs +40 -14
- package/components/input/epoch/esm2022/time/time.props.mjs +3 -2
- package/components/input/epoch/fesm2022/index.mjs +118 -60
- package/components/input/epoch/fesm2022/index.mjs.map +1 -1
- package/components/input/slider/bundles/index.umd.js +107 -38
- package/components/input/slider/esm2022/slider.component.mjs +86 -18
- package/components/input/slider/esm2022/slider.props.mjs +5 -3
- package/components/input/slider/fesm2022/index.mjs +88 -19
- package/components/input/slider/fesm2022/index.mjs.map +1 -1
- package/components/input/slider/slider.component.d.ts +5 -0
- package/npm-shrinkwrap.json +2 -2
- package/oAuth/esm2022/oAuth.service.mjs +1 -1
- package/oAuth/fesm2022/index.mjs.map +1 -1
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/runtime/base/bundles/index.umd.js +84 -34
- package/runtime/base/components/app-component/app.component.d.ts +10 -3
- package/runtime/base/esm2022/components/app-component/app.component.mjs +85 -34
- package/runtime/base/esm2022/util/wm-route-reuse-strategy.mjs +2 -2
- package/runtime/base/fesm2022/index.mjs +85 -35
- package/runtime/base/fesm2022/index.mjs.map +1 -1
- package/scripts/datatable/datatable.js +56 -10
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import * as i1 from '@angular/common';
|
|
1
2
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import * as
|
|
3
|
-
import { PROP_STRING, PROP_BOOLEAN, PROP_NUMBER, register, registerFormWidget, styler, provideAs, provideAsWidgetRef, WmComponentsModule } from '@wm/components/base';
|
|
4
|
-
import * as
|
|
3
|
+
import * as i2 from '@wm/components/base';
|
|
4
|
+
import { PROP_STRING, PROP_BOOLEAN, PROP_NUMBER, PROP_ANY, register, registerFormWidget, styler, convertDataToObject, provideAs, provideAsWidgetRef, WmComponentsModule } from '@wm/components/base';
|
|
5
|
+
import * as i3 from '@angular/forms';
|
|
5
6
|
import { NgModel, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
|
|
6
7
|
import * as i0 from '@angular/core';
|
|
7
8
|
import { Component, Inject, Optional, ViewChild } from '@angular/core';
|
|
8
9
|
import { BaseFormCustomComponent } from '@wm/components/input';
|
|
9
|
-
import { FormWidgetType } from '@wm/core';
|
|
10
|
+
import { FormWidgetType, isDefined } from '@wm/core';
|
|
10
11
|
|
|
11
12
|
const sliderProps = new Map([
|
|
12
13
|
['class', PROP_STRING],
|
|
@@ -21,7 +22,9 @@ const sliderProps = new Map([
|
|
|
21
22
|
['shortcutkey', PROP_STRING],
|
|
22
23
|
['show', { value: true, ...PROP_BOOLEAN }],
|
|
23
24
|
['step', PROP_NUMBER],
|
|
24
|
-
['tabindex', { value: 0, ...PROP_NUMBER }]
|
|
25
|
+
['tabindex', { value: 0, ...PROP_NUMBER }],
|
|
26
|
+
['showmarkers', { value: false, ...PROP_BOOLEAN }],
|
|
27
|
+
['markerlabeltext', PROP_ANY],
|
|
25
28
|
]);
|
|
26
29
|
const registerProps = () => {
|
|
27
30
|
register('wm-slider', sliderProps);
|
|
@@ -30,8 +33,44 @@ const registerProps = () => {
|
|
|
30
33
|
|
|
31
34
|
const _c0 = ["wmSlider", ""];
|
|
32
35
|
const _c1 = () => ({ standalone: true });
|
|
36
|
+
const _c2 = a0 => ({ left: a0 });
|
|
37
|
+
function SliderComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
38
|
+
i0.ɵɵelement(0, "span", 3)(1, "span", 4);
|
|
39
|
+
} if (rf & 2) {
|
|
40
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
41
|
+
i0.ɵɵproperty("textContent", ctx_r0.minvalue);
|
|
42
|
+
i0.ɵɵadvance();
|
|
43
|
+
i0.ɵɵproperty("textContent", ctx_r0.maxvalue);
|
|
44
|
+
} }
|
|
45
|
+
function SliderComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
46
|
+
i0.ɵɵelement(0, "div", 1);
|
|
47
|
+
} }
|
|
48
|
+
function SliderComponent_Conditional_3_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
49
|
+
i0.ɵɵelementStart(0, "div", 6)(1, "div", 7);
|
|
50
|
+
i0.ɵɵtext(2);
|
|
51
|
+
i0.ɵɵelementEnd();
|
|
52
|
+
i0.ɵɵelement(3, "div", 8);
|
|
53
|
+
i0.ɵɵelementEnd();
|
|
54
|
+
} if (rf & 2) {
|
|
55
|
+
const marker_r2 = ctx.$implicit;
|
|
56
|
+
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(6, _c2, marker_r2.left + "px"));
|
|
57
|
+
i0.ɵɵattribute("title", marker_r2.label);
|
|
58
|
+
i0.ɵɵadvance();
|
|
59
|
+
i0.ɵɵproperty("ngClass", marker_r2.position);
|
|
60
|
+
i0.ɵɵattribute("title", marker_r2.label);
|
|
61
|
+
i0.ɵɵadvance();
|
|
62
|
+
i0.ɵɵtextInterpolate1(" ", marker_r2.label, " ");
|
|
63
|
+
i0.ɵɵadvance();
|
|
64
|
+
i0.ɵɵattribute("title", marker_r2.label);
|
|
65
|
+
} }
|
|
33
66
|
function SliderComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
34
|
-
i0.ɵɵ
|
|
67
|
+
i0.ɵɵelementStart(0, "div", 2);
|
|
68
|
+
i0.ɵɵtemplate(1, SliderComponent_Conditional_3_div_1_Template, 4, 8, "div", 5);
|
|
69
|
+
i0.ɵɵelementEnd();
|
|
70
|
+
} if (rf & 2) {
|
|
71
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
72
|
+
i0.ɵɵadvance();
|
|
73
|
+
i0.ɵɵproperty("ngForOf", ctx_r0.markerItems);
|
|
35
74
|
} }
|
|
36
75
|
const DEFAULT_CLS = 'app-slider slider';
|
|
37
76
|
const WIDGET_CONFIG = {
|
|
@@ -57,8 +96,38 @@ class SliderComponent extends BaseFormCustomComponent {
|
|
|
57
96
|
if (key === 'tabindex') {
|
|
58
97
|
return;
|
|
59
98
|
}
|
|
99
|
+
else if (key === 'showmarkers' || key === 'markerlabeltext' || key === 'minvalue' || key === 'maxvalue' || key === 'step') {
|
|
100
|
+
if (this.showmarkers) {
|
|
101
|
+
this.renderMarkers();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
60
104
|
super.onPropertyChange(key, nv, ov);
|
|
61
105
|
}
|
|
106
|
+
renderMarkers() {
|
|
107
|
+
const sliderTrack = this.nativeElement.querySelector('.range-input');
|
|
108
|
+
const trackWidth = sliderTrack?.offsetWidth - 9 || 0;
|
|
109
|
+
let tickCount = 0;
|
|
110
|
+
if (isDefined(this.minvalue) && isDefined(this.maxvalue)) {
|
|
111
|
+
tickCount = this.step > 0 ? Math.floor((this.maxvalue - this.minvalue) / this.step) + 1 : 0;
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
tickCount = this.step > 0 ? Math.floor(100 / this.step) + 1 : 0;
|
|
115
|
+
}
|
|
116
|
+
const labels = convertDataToObject(this.markerlabeltext);
|
|
117
|
+
this.markerItems = [];
|
|
118
|
+
for (let i = 0; i < tickCount; i++) {
|
|
119
|
+
const left = ((trackWidth / (tickCount - 1)) * i);
|
|
120
|
+
const label = labels?.[i]?.dataValue ?? (Array.isArray(labels) ? (typeof labels[i] === 'object' && labels[i]?.title ? labels[i].title : labels[i]) : `${i}`);
|
|
121
|
+
const position = Array.isArray(labels) && typeof labels[i] === 'object' && labels[i]?.position ? labels[i].position : 'up';
|
|
122
|
+
this.markerItems.push({ label, position, left });
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
ngAfterViewInit() {
|
|
126
|
+
super.ngAfterViewInit();
|
|
127
|
+
if (this.showmarkers) {
|
|
128
|
+
setTimeout(() => { this.renderMarkers(); }, 40);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
62
131
|
static { this.ɵfac = function SliderComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SliderComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
|
|
63
132
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SliderComponent, selectors: [["", "wmSlider", ""]], viewQuery: function SliderComponent_Query(rf, ctx) { if (rf & 1) {
|
|
64
133
|
i0.ɵɵviewQuery(NgModel, 5);
|
|
@@ -68,32 +137,32 @@ class SliderComponent extends BaseFormCustomComponent {
|
|
|
68
137
|
} }, standalone: true, features: [i0.ɵɵProvidersFeature([
|
|
69
138
|
provideAs(SliderComponent, NG_VALUE_ACCESSOR, true),
|
|
70
139
|
provideAsWidgetRef(SliderComponent)
|
|
71
|
-
]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], attrs: _c0, decls: 4, vars: 15, consts: [[
|
|
72
|
-
i0.ɵɵ
|
|
73
|
-
i0.ɵɵelementStart(
|
|
74
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
75
|
-
i0.ɵɵlistener("blur", function
|
|
140
|
+
]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], attrs: _c0, decls: 4, vars: 15, consts: [["aria-orientation", "horizontal", "focus-target", "", "type", "range", 1, "range-input", 3, "ngModelChange", "blur", "title", "ngModel", "ngModelOptions", "disabled", "tabindex"], ["aria-readonly", "true", 1, "readonly-wrapper"], [1, "marker-container"], [1, "app-slider-value", "pull-left", 3, "textContent"], [1, "app-slider-value", "pull-right", 3, "textContent"], ["class", "marker-wrapper", 3, "ngStyle", 4, "ngFor", "ngForOf"], [1, "marker-wrapper", 3, "ngStyle"], [1, "marker-label", 3, "ngClass"], [1, "marker-dot"]], template: function SliderComponent_Template(rf, ctx) { if (rf & 1) {
|
|
141
|
+
i0.ɵɵtemplate(0, SliderComponent_Conditional_0_Template, 2, 2);
|
|
142
|
+
i0.ɵɵelementStart(1, "input", 0);
|
|
143
|
+
i0.ɵɵtwoWayListener("ngModelChange", function SliderComponent_Template_input_ngModelChange_1_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.datavalue, $event) || (ctx.datavalue = $event); return $event; });
|
|
144
|
+
i0.ɵɵlistener("blur", function SliderComponent_Template_input_blur_1_listener($event) { return ctx.invokeOnTouched($event); })("ngModelChange", function SliderComponent_Template_input_ngModelChange_1_listener($event) { return ctx.handleChange($event); });
|
|
76
145
|
i0.ɵɵelementEnd();
|
|
77
|
-
i0.ɵɵtemplate(
|
|
146
|
+
i0.ɵɵtemplate(2, SliderComponent_Conditional_2_Template, 1, 0, "div", 1)(3, SliderComponent_Conditional_3_Template, 2, 1, "div", 2);
|
|
78
147
|
} if (rf & 2) {
|
|
79
|
-
i0.ɵɵ
|
|
80
|
-
i0.ɵɵadvance();
|
|
81
|
-
i0.ɵɵproperty("textContent", ctx.maxvalue);
|
|
148
|
+
i0.ɵɵconditional(!ctx.showmarkers ? 0 : -1);
|
|
82
149
|
i0.ɵɵadvance();
|
|
83
150
|
i0.ɵɵproperty("title", ctx.datavalue);
|
|
84
151
|
i0.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
|
|
85
152
|
i0.ɵɵproperty("ngModelOptions", i0.ɵɵpureFunction0(14, _c1))("disabled", ctx.disabled)("tabindex", ctx.tabindex);
|
|
86
153
|
i0.ɵɵattribute("min", ctx.minvalue)("max", ctx.maxvalue)("step", ctx.step)("accesskey", ctx.shortcutkey)("aria-label", ctx.arialabel)("name", ctx.name);
|
|
87
154
|
i0.ɵɵadvance();
|
|
88
|
-
i0.ɵɵconditional(ctx.readonly || ctx.disabled ?
|
|
89
|
-
|
|
155
|
+
i0.ɵɵconditional(ctx.readonly || ctx.disabled ? 2 : -1);
|
|
156
|
+
i0.ɵɵadvance();
|
|
157
|
+
i0.ɵɵconditional(ctx.showmarkers ? 3 : -1);
|
|
158
|
+
} }, dependencies: [CommonModule, i1.NgClass, i1.NgForOf, i1.NgStyle, WmComponentsModule, i2.TextContentDirective, FormsModule, i3.DefaultValueAccessor, i3.RangeValueAccessor, i3.NgControlStatus, i3.NgModel], encapsulation: 2 }); }
|
|
90
159
|
}
|
|
91
160
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SliderComponent, [{
|
|
92
161
|
type: Component,
|
|
93
162
|
args: [{ standalone: true, imports: [CommonModule, WmComponentsModule, FormsModule], selector: '[wmSlider]', providers: [
|
|
94
163
|
provideAs(SliderComponent, NG_VALUE_ACCESSOR, true),
|
|
95
164
|
provideAsWidgetRef(SliderComponent)
|
|
96
|
-
], template: "<span [textContent]=\"minvalue\" class=\"app-slider-value pull-left\"></span>\n<span [textContent]=\"maxvalue\" class=\"app-slider-value pull-right\"></span>\n<input class=\"range-input\" aria-orientation=\"horizontal\"\n focus-target\n type=\"range\" [title]=\"datavalue\"\n [attr.min]=\"minvalue\"\n [attr.max]=\"maxvalue\"\n [attr.step]=\"step\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [disabled]=\"disabled\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [attr.name]=\"name\"\n [tabindex]=\"tabindex\"/>\n@if (readonly || disabled) {\n <div aria-readonly=\"true\" class=\"readonly-wrapper\"></div>\n}\n" }]
|
|
165
|
+
], template: "@if(!showmarkers){\n <span [textContent]=\"minvalue\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue\" class=\"app-slider-value pull-right\"></span>\n}\n<input class=\"range-input\" aria-orientation=\"horizontal\"\n focus-target\n type=\"range\" [title]=\"datavalue\"\n [attr.min]=\"minvalue\"\n [attr.max]=\"maxvalue\"\n [attr.step]=\"step\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [disabled]=\"disabled\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [attr.name]=\"name\"\n [tabindex]=\"tabindex\"/>\n@if (readonly || disabled) {\n <div aria-readonly=\"true\" class=\"readonly-wrapper\"></div>\n}\n@if(showmarkers){\n <div class=\"marker-container\">\n <div *ngFor=\"let marker of markerItems\"\n class=\"marker-wrapper\"\n [ngStyle]=\"{ left: marker.left + 'px' }\"\n [attr.title]=\"marker.label\">\n <div class=\"marker-label\" [ngClass]=\"marker.position\" [attr.title]=\"marker.label\">\n {{ marker.label }}\n </div>\n <div class=\"marker-dot\" [attr.title]=\"marker.label\"></div>\n </div>\n </div>\n\n}\n" }]
|
|
97
166
|
}], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
|
|
98
167
|
type: Inject,
|
|
99
168
|
args: ['EXPLICIT_CONTEXT']
|
|
@@ -103,7 +172,7 @@ class SliderComponent extends BaseFormCustomComponent {
|
|
|
103
172
|
type: ViewChild,
|
|
104
173
|
args: [NgModel]
|
|
105
174
|
}] }); })();
|
|
106
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SliderComponent, { className: "SliderComponent", filePath: "slider.component.ts", lineNumber:
|
|
175
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SliderComponent, { className: "SliderComponent", filePath: "slider.component.ts", lineNumber: 30 }); })();
|
|
107
176
|
|
|
108
177
|
/**
|
|
109
178
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/slider/src/slider.props.ts","../../../../../projects/components/widgets/input/slider/src/slider.component.html","../../../../../projects/components/widgets/input/slider/src/slider.component.ts","../../../../../projects/components/widgets/input/slider/src/index.ts"],"sourcesContent":["import {PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget} from '@wm/components/base';\nimport {FormWidgetType} from '@wm/core';\n\nexport const sliderProps = new Map(\n [\n ['class', PROP_STRING],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['maxvalue', PROP_NUMBER],\n ['minvalue', PROP_NUMBER],\n ['name', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['step', PROP_NUMBER],\n ['tabindex', {value: 0, ...PROP_NUMBER}]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-slider',\n sliderProps\n );\n registerFormWidget(\n FormWidgetType.SLIDER,\n new Map(sliderProps)\n );\n};\n","<span [textContent]=\"minvalue\" class=\"app-slider-value pull-left\"></span>\n<span [textContent]=\"maxvalue\" class=\"app-slider-value pull-right\"></span>\n<input class=\"range-input\" aria-orientation=\"horizontal\"\n focus-target\n type=\"range\" [title]=\"datavalue\"\n [attr.min]=\"minvalue\"\n [attr.max]=\"maxvalue\"\n [attr.step]=\"step\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [disabled]=\"disabled\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [attr.name]=\"name\"\n [tabindex]=\"tabindex\"/>\n@if (readonly || disabled) {\n <div aria-readonly=\"true\" class=\"readonly-wrapper\"></div>\n}\n","import { CommonModule } from '@angular/common';\nimport { WmComponentsModule } from \"@wm/components/base\";\nimport { FormsModule } from '@angular/forms';\nimport {Component, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport {NG_VALUE_ACCESSOR, NgModel} from '@angular/forms';\n\nimport {IWidgetConfig, provideAs, provideAsWidgetRef, styler} from '@wm/components/base';\nimport {BaseFormCustomComponent} from '@wm/components/input';\n\nimport {registerProps} from './slider.props';\n\n\nconst DEFAULT_CLS = 'app-slider slider';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-slider',\n hostClass: DEFAULT_CLS\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, WmComponentsModule, FormsModule],\n selector: '[wmSlider]',\n templateUrl: './slider.component.html',\n providers: [\n provideAs(SliderComponent, NG_VALUE_ACCESSOR, true),\n provideAsWidgetRef(SliderComponent)\n ]\n})\nexport class SliderComponent extends BaseFormCustomComponent {\n static initializeProps = registerProps();\n\n public minvalue: number;\n public maxvalue: number;\n public disabled: boolean;\n public step: number;\n public shortcutkey: string;\n public tabindex: any;\n public name: string;\n public readonly: boolean;\n public hint: string;\n public arialabel: string;\n\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n\n // change and blur events are added from the template\n protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any) {\n if (eventName !== 'change' && eventName !== 'blur') {\n super.handleEvent(node, eventName, callback, locals);\n }\n }\n\n public handleChange(newVal: boolean) {\n this.invokeOnChange(this.datavalue, {type: 'change'}, this.ngModel.valid);\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'tabindex') {\n return;\n }\n\n super.onPropertyChange(key, nv, ov);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/slider/src/slider.props.ts","../../../../../projects/components/widgets/input/slider/src/slider.component.html","../../../../../projects/components/widgets/input/slider/src/slider.component.ts","../../../../../projects/components/widgets/input/slider/src/index.ts"],"sourcesContent":["import {PROP_ANY,PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget} from '@wm/components/base';\nimport {FormWidgetType} from '@wm/core';\n\nexport const sliderProps = new Map(\n [\n ['class', PROP_STRING],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['maxvalue', PROP_NUMBER],\n ['minvalue', PROP_NUMBER],\n ['name', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['step', PROP_NUMBER],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['showmarkers',{value: false, ...PROP_BOOLEAN}],\n ['markerlabeltext',PROP_ANY],\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-slider',\n sliderProps\n );\n registerFormWidget(\n FormWidgetType.SLIDER,\n new Map(sliderProps)\n );\n};\n","@if(!showmarkers){\n <span [textContent]=\"minvalue\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue\" class=\"app-slider-value pull-right\"></span>\n}\n<input class=\"range-input\" aria-orientation=\"horizontal\"\n focus-target\n type=\"range\" [title]=\"datavalue\"\n [attr.min]=\"minvalue\"\n [attr.max]=\"maxvalue\"\n [attr.step]=\"step\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [disabled]=\"disabled\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [attr.name]=\"name\"\n [tabindex]=\"tabindex\"/>\n@if (readonly || disabled) {\n <div aria-readonly=\"true\" class=\"readonly-wrapper\"></div>\n}\n@if(showmarkers){\n <div class=\"marker-container\">\n <div *ngFor=\"let marker of markerItems\"\n class=\"marker-wrapper\"\n [ngStyle]=\"{ left: marker.left + 'px' }\"\n [attr.title]=\"marker.label\">\n <div class=\"marker-label\" [ngClass]=\"marker.position\" [attr.title]=\"marker.label\">\n {{ marker.label }}\n </div>\n <div class=\"marker-dot\" [attr.title]=\"marker.label\"></div>\n </div>\n </div>\n\n}\n","import { CommonModule } from '@angular/common';\nimport {convertDataToObject, WmComponentsModule} from \"@wm/components/base\";\nimport { FormsModule } from '@angular/forms';\nimport {Component, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport {NG_VALUE_ACCESSOR, NgModel} from '@angular/forms';\n\nimport {IWidgetConfig, provideAs, provideAsWidgetRef, styler} from '@wm/components/base';\nimport {BaseFormCustomComponent} from '@wm/components/input';\n\nimport {registerProps} from './slider.props';\nimport {isDefined} from \"@wm/core\";\n\n\nconst DEFAULT_CLS = 'app-slider slider';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-slider',\n hostClass: DEFAULT_CLS\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, WmComponentsModule, FormsModule],\n selector: '[wmSlider]',\n templateUrl: './slider.component.html',\n providers: [\n provideAs(SliderComponent, NG_VALUE_ACCESSOR, true),\n provideAsWidgetRef(SliderComponent)\n ]\n})\nexport class SliderComponent extends BaseFormCustomComponent {\n static initializeProps = registerProps();\n\n public minvalue: number;\n public maxvalue: number;\n public disabled: boolean;\n public step: number;\n public shortcutkey: string;\n public tabindex: any;\n public name: string;\n public readonly: boolean;\n public hint: string;\n public arialabel: string;\n public markerlabeltext: string\n public showmarkers: boolean;\n\n @ViewChild(NgModel) ngModel: NgModel;\n public markerItems: any[];\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n\n // change and blur events are added from the template\n protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any) {\n if (eventName !== 'change' && eventName !== 'blur') {\n super.handleEvent(node, eventName, callback, locals);\n }\n }\n\n public handleChange(newVal: boolean) {\n this.invokeOnChange(this.datavalue, {type: 'change'}, this.ngModel.valid);\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'tabindex') {\n return;\n }\n else if(key === 'showmarkers'||key === 'markerlabeltext' || key === 'minvalue'||key === 'maxvalue'||key === 'step') {\n if(this.showmarkers) {\n this.renderMarkers();\n }\n }\n super.onPropertyChange(key, nv, ov);\n }\n private renderMarkers() {\n const sliderTrack = this.nativeElement.querySelector('.range-input') as HTMLElement;\n const trackWidth = sliderTrack?.offsetWidth-9|| 0;\n let tickCount=0;\n if(isDefined(this.minvalue) && isDefined(this.maxvalue)){\n tickCount = this.step > 0 ? Math.floor((this.maxvalue - this.minvalue) / this.step) + 1 : 0;\n } else{\n tickCount = this.step > 0 ? Math.floor(100 / this.step) + 1 : 0;\n }\n const labels = convertDataToObject(this.markerlabeltext);\n this.markerItems = [];\n for (let i = 0; i < tickCount; i++) {\n const left = ((trackWidth / (tickCount - 1)) * i);\n const label = labels?.[i]?.dataValue ?? (Array.isArray(labels) ? (typeof labels[i] === 'object' && labels[i]?.title ? labels[i].title : labels[i]) : `${i}`);\n const position = Array.isArray(labels) && typeof labels[i] === 'object' && labels[i]?.position ? labels[i].position : 'up';\n this.markerItems.push({ label, position, left });\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if(this.showmarkers) {\n setTimeout(() => {this.renderMarkers();}, 40);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -14,11 +14,16 @@ export declare class SliderComponent extends BaseFormCustomComponent {
|
|
|
14
14
|
readonly: boolean;
|
|
15
15
|
hint: string;
|
|
16
16
|
arialabel: string;
|
|
17
|
+
markerlabeltext: string;
|
|
18
|
+
showmarkers: boolean;
|
|
17
19
|
ngModel: NgModel;
|
|
20
|
+
markerItems: any[];
|
|
18
21
|
constructor(inj: Injector, explicitContext: any);
|
|
19
22
|
protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any): void;
|
|
20
23
|
handleChange(newVal: boolean): void;
|
|
21
24
|
onPropertyChange(key: string, nv: any, ov?: any): void;
|
|
25
|
+
private renderMarkers;
|
|
26
|
+
ngAfterViewInit(): void;
|
|
22
27
|
static ɵfac: i0.ɵɵFactoryDeclaration<SliderComponent, [null, { optional: true; }]>;
|
|
23
28
|
static ɵcmp: i0.ɵɵComponentDeclaration<SliderComponent, "[wmSlider]", never, {}, {}, never, never, true, never>;
|
|
24
29
|
}
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wavemaker/app-ng-runtime",
|
|
3
|
-
"version": "11.11.
|
|
3
|
+
"version": "11.11.5-rc.214",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@wavemaker/app-ng-runtime",
|
|
9
|
-
"version": "11.11.
|
|
9
|
+
"version": "11.11.5-rc.214",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"engines": {
|
|
12
12
|
"node": ">=18.16.1",
|
|
@@ -39,4 +39,4 @@ export class OAuthService {
|
|
|
39
39
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OAuthService, [{
|
|
40
40
|
type: Injectable
|
|
41
41
|
}], () => [{ type: i1.AbstractHttpService }], null); })();
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib0F1dGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL29BdXRoL3NyYy9vQXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBQyxNQUFNLFdBQVcsQ0FBQzs7O0FBR3ZDLE1BQU0sT0FBTyxZQUFZO0lBQ3JCLFlBQW9CLFdBQWdDO1FBQWhDLGdCQUFXLEdBQVgsV0FBVyxDQUFxQjtRQUVwRCxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUxQixvQkFBZSxHQUFHLEVBQUUsQ0FBQztJQUprQyxDQUFDO0lBTXhELDZCQUE2QjtRQUN6QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELGlCQUFpQixDQUFDLFFBQVE7UUFDdEIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3pELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELG9CQUFvQixDQUFDLFVBQVU7UUFDM0IsTUFBTSxDQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQscUJBQXFCLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVksRUFBRSxlQUFnQixFQUFFLFdBQVk7UUFDbkcsb0JBQW9CLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDcE0sQ0FBQztJQUVELGNBQWMsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCO1FBQ3RDLE9BQU8sY0FBYyxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxRQUFRO1FBQ3RCLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7NkdBakNRLFlBQVk7dUVBQVosWUFBWSxXQUFaLFlBQVk7O2lGQUFaLFlBQVk7Y0FEeEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdEh0dHBTZXJ2aWNlIH0gZnJvbSAnQHdtL2NvcmUnO1xuXG5pbXBvcnQgeyBnZXRBY2Nlc3NUb2tlbiwgcGVyZm9ybUF1dGhvcml6YXRpb24sIHJlbW92ZUFjY2Vzc1Rva2VuIH0gZnJvbSAnLi9vQXV0aC51dGlscyc7XG5pbXBvcnQge2ZpbmQsIHJlbW92ZX0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT0F1dGhTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBTZXJ2aWNlOiBBYnN0cmFjdEh0dHBTZXJ2aWNlKSB7fVxuXG4gICAgcHJvdmlkZXJzID0gbmV3IFN1YmplY3QoKTtcblxuICAgIHByb3ZpZGVyc0NvbmZpZyA9IFtdO1xuXG4gICAgZ2V0T0F1dGhQcm92aWRlcnNBc09ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvdmlkZXJzLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIGFkZFByb3ZpZGVyQ29uZmlnKHByb3ZpZGVyKSB7XG4gICAgICAgIGlmICghKGZpbmQodGhpcy5wcm92aWRlcnNDb25maWcsIHsnbmFtZSc6IHByb3ZpZGVyLm5hbWV9KSkpIHtcbiAgICAgICAgICAgIHRoaXMucHJvdmlkZXJzQ29uZmlnLnB1c2gocHJvdmlkZXIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJvdmlkZXJzLm5leHQodGhpcy5wcm92aWRlcnNDb25maWcpO1xuICAgIH1cblxuICAgIHJlbW92ZVByb3ZpZGVyQ29uZmlnKHByb3ZpZGVySWQpIHtcbiAgICAgICAgcmVtb3ZlPGFueT4odGhpcy5wcm92aWRlcnNDb25maWcsIHByb3ZpZGVyID0+IHByb3ZpZGVyLm5hbWUgPT09IHByb3ZpZGVySWQpO1xuICAgICAgICB0aGlzLnByb3ZpZGVycy5uZXh0KHRoaXMucHJvdmlkZXJzQ29uZmlnKTtcbiAgICB9XG5cbiAgICBwZXJmcm9tT0F1dGhvcml6YXRpb24odXJsLCBwcm92aWRlcklkLCBvblN1Y2Nlc3MsIG9uRXJyb3IsIHNlY3VyaXR5T2JqPywgY3VzdG9tVXJpU2NoZW1lPywgZGVwbG95ZWRVUkw/KSB7XG4gICAgICAgIHBlcmZvcm1BdXRob3JpemF0aW9uKHVybCwgcHJvdmlkZXJJZCwgb25TdWNjZXNzLCBvbkVycm9yLCB0aGlzLmh0dHBTZXJ2aWNlLCB0aGlzLmFkZFByb3ZpZGVyQ29uZmlnLmJpbmQodGhpcyksIHRoaXMucmVtb3ZlUHJvdmlkZXJDb25maWcuYmluZCh0aGlzKSwgc2VjdXJpdHlPYmosIGN1c3RvbVVyaVNjaGVtZSwgZGVwbG95ZWRVUkwpO1xuICAgIH1cblxuICAgIGdldEFjY2Vzc1Rva2VuKHByb3ZpZGVyLCBjaGVja0xvY2FsU3RvcmFnZSkge1xuICAgICAgICByZXR1cm4gZ2V0QWNjZXNzVG9rZW4ocHJvdmlkZXIsIGNoZWNrTG9jYWxTdG9yYWdlKTtcbiAgICB9XG5cbiAgICByZW1vdmVBY2Nlc3NUb2tlbihwcm92aWRlcikge1xuICAgICAgICByZW1vdmVBY2Nlc3NUb2tlbihwcm92aWRlcik7XG4gICAgfVxufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../projects/oAuth/src/oAuth.utils.ts","../../../projects/oAuth/src/oAuth.service.ts","../../../projects/oAuth/src/index.ts"],"sourcesContent":["import { _WM_APP_PROJECT, isIE, getWmProjectProperties } from '@wm/core';\nimport {get, isUndefined} from \"lodash-es\";\n\nimport * as momentLib from 'moment';\nconst moment = momentLib.default || window['moment'];\ndeclare const jsSHA;\n\nconst accessTokenSuffix = '.access_token', pkceIdentifier = 'pkce', implicitIdentifier = 'implicit';\n\nlet code_verifier, redirectUri;\n\nexport const parseConfig = (serviceParams: any): any => {\n\n let val, param, config;\n const urlParams = serviceParams.urlParams;\n\n config = {\n url: 'services/oauth2/:providerId/authorizationUrl',\n method: 'GET'\n };\n\n /*To handle dynamic urls, append the serviceParams.config.url with the static url(i.e., config.url)*/\n if (serviceParams.config) {\n config.url = (serviceParams.config.url || '') + config.url;\n config.method = serviceParams.config.method || config.method;\n config.headers = config.headers || {};\n\n // TODO[Shubham] - change to for - of\n for (const key in serviceParams.config.headers) {\n val = serviceParams.config.headers[key];\n config.headers[key] = val;\n }\n }\n /* check for url parameters to replace the url */\n if (urlParams) {\n for (param in urlParams) {\n if (urlParams.hasOwnProperty(param)) {\n val = urlParams[param];\n if (!isUndefined(val) && val !== null) {\n config.url = config.url.replace(new RegExp(':' + param, 'g'), val);\n }\n }\n }\n }\n\n /* check for data */\n if (serviceParams.params) {\n config.params = serviceParams.params;\n }\n /* check for data */\n if (!isUndefined(serviceParams.data)) {\n config.data = serviceParams.data;\n }\n /* check for data parameters, written to support old service calls (.json calls) */\n if (serviceParams.dataParams) {\n config.data.params = serviceParams.dataParams;\n }\n /* check for headers */\n if (serviceParams.headers) {\n config.headers = serviceParams.headers;\n }\n\n /* set extra config flags */\n config.byPassResult = serviceParams.byPassResult;\n config.isDirectCall = serviceParams.isDirectCall;\n config.isExtURL = serviceParams.isExtURL;\n config.preventMultiple = serviceParams.preventMultiple;\n config.responseType = serviceParams.responseType;\n\n return config;\n};\n\nconst listeners = {},\n ACCESSTOKEN_PLACEHOLDERS = {\n 'STUDIO': 'WM_STUDIO_',\n 'RUN': 'WM_RUN_'\n },\n newWindowProps = 'width=400,height=600';\n\n/**\n * This function remove the accessToken for a provider\n * @param provider\n */\nexport const removeAccessToken = (provider) => {\n const accessTokenKey = getAccessTokenPlaceholder(provider);\n localStorage.removeItem(accessTokenKey);\n};\n\n/**\n * This function returns the accesstoken placeholder based on the studio or run mode for the project\n * @param provider\n * @returns {*}\n */\nfunction getAccessTokenPlaceholder(provider) {\n let accessTokenKey;\n accessTokenKey = ACCESSTOKEN_PLACEHOLDERS.RUN + _WM_APP_PROJECT.id + '_' + provider + accessTokenSuffix;\n return accessTokenKey;\n}\n\n/**\n * This function performs the fake local storage update, so the IE gets the latest token instead of returning the cached localStorageValue\n */\nfunction performFakeLocalStorageUpdate() {\n const dummy_key = 'dummy_key';\n localStorage.setItem(dummy_key, dummy_key);\n localStorage.removeItem(dummy_key);\n}\n\n/**\n * This function sets the accessToken\n * @param provider\n * @param accesstoken\n */\nfunction setAccessToken(provider, accesstoken) {\n const accessTokenKey = getAccessTokenPlaceholder(provider);\n localStorage.setItem(accessTokenKey, accesstoken);\n}\n\n/**\n * this is a callback function to check if the authentication is done and invokes the successCallback\n * @param providerId\n * @param successCallback\n * @param evt\n */\nfunction checkAuthenticationStatus(providerId, successCallback, removeProviderConfigCallBack, evt, http?, securityObj?) {\n const accessTokenKey = providerId + accessTokenSuffix,\n accessTokenOrCode = localStorage.getItem(accessTokenKey);\n if (evt && evt.origin !== window.location.origin) {\n return;\n }\n if (accessTokenOrCode) {\n if (isPassedFlow(securityObj, pkceIdentifier)) {\n const req = 'client_id=' + securityObj.clientId + '&code=' + accessTokenOrCode + '&grant_type=authorization_code&code_verifier=' + code_verifier + '&redirect_uri=' + redirectUri;\n http.send({\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded'\n },\n url: securityObj.accessTokenUrl,\n data: req\n }).then(function(response) {\n triggerAccessTokenSuccessCallback(providerId, successCallback, removeProviderConfigCallBack, accessTokenKey, response.body.access_token);\n });\n } else {\n triggerAccessTokenSuccessCallback(providerId, successCallback, removeProviderConfigCallBack, accessTokenKey, accessTokenOrCode);\n }\n }\n}\n\n/**\n * function trigger the successCallback after getting the access token\n */\nfunction triggerAccessTokenSuccessCallback(providerId, successCallback, removeProviderConfigCallBack, accessTokenKey, token) {\n removeProviderConfigCallBack(providerId);\n localStorage.removeItem(accessTokenKey);\n setAccessToken(providerId, token);\n window.removeEventListener('message', listeners[providerId]);\n setTimeout(() => {\n delete listeners[providerId];\n if (successCallback) {\n successCallback(token);\n }\n });\n}\n\n/**\n * this function keeps on checking the accesstoken in the LocalStorage and updates it accordingly\n * @param providerId\n * @param onSuccess\n * @param onError\n * @param startTime\n * @param loginObj\n */\nfunction checkAccessTokenInWindow(providerId, onSuccess, onError, startTime, loginObj, removeProviderConfigCallBack) {\n performFakeLocalStorageUpdate();\n const currentTime = moment.duration(moment().format('HH:mm'), 'HH:mm' as any),\n timeDiff = currentTime.subtract(startTime),\n accessToken = getAccessToken(providerId, true);\n if (accessToken) {\n loginObj.accesstoken_retrieved = true;\n setAccessToken(providerId, accessToken);\n localStorage.removeItem(providerId + accessTokenSuffix);\n removeProviderConfigCallBack(providerId);\n if (onSuccess) {\n onSuccess();\n }\n } else if (timeDiff.minutes() > 1 && onSuccess && !loginObj.accesstoken_retrieved) {\n onSuccess('error');\n } else {\n setTimeout(() => {\n checkAccessTokenInWindow(providerId, onSuccess, onError, startTime, loginObj, removeProviderConfigCallBack);\n }, 3000);\n }\n}\n\n/**\n * checks for the window existence i.e if the window is manually closed by the user or any such\n * @param oAuthWindow\n * @param provider\n * @param callback\n */\nfunction checkForWindowExistence(oAuthWindow, provider, callback, providerInfo?) {\n if (oAuthWindow && listeners[provider]) {\n if (!oAuthWindow.closed) { // .closed is supported across major browser vendors however for IE the user has to enable protected mode from security options\n setTimeout(checkForWindowExistence.bind(undefined, oAuthWindow, provider, callback, providerInfo), 3000);\n } else {\n if (!isPassedFlow(providerInfo, pkceIdentifier)) {\n window.removeEventListener('message', listeners[provider]);\n delete listeners[provider];\n if (callback) {\n callback('error');\n }\n }\n }\n }\n}\n/**\n * this functions handles the logic related to the window operations in IE\n * @param url\n * @param providerId\n * @param onSuccess\n * @param onError\n */\nfunction handleLoginForIE(url, providerId, onSuccess, onError, removeProviderConfigCallBack, securityObj?, requestSourceType?, customUriScheme?, deployedURL?) {\n const loginObj = {\n 'accesstoken_retrieved': false\n };\n if (isPassedFlow(securityObj, implicitIdentifier)) {\n url = constructURLForImplicitOrPKCE(providerId, securityObj, requestSourceType, null, customUriScheme, deployedURL);\n }\n window.open(url, '_blank', newWindowProps);\n checkAccessTokenInWindow(providerId, onSuccess, onError, moment.duration(moment().format('HH:mm'), 'HH:mm' as any), loginObj, removeProviderConfigCallBack);\n}\n\n/**\n * this functions returns if the current oAuth Flow matches the passed flow or not\n * @param providerInfo\n */\nfunction isPassedFlow(providerInfo, flow) {\n let oAuthFlow = get(providerInfo, 'oauth2Flow');\n oAuthFlow = oAuthFlow ? oAuthFlow.toLowerCase() : oAuthFlow;\n if (flow === pkceIdentifier) {\n if (get(providerInfo, 'oAuth2Pkce.enabled') === true) {\n oAuthFlow = pkceIdentifier;\n }\n }\n return oAuthFlow === flow;\n}\n\n/**\n * this function adds the listener on the window and assigns the listener\n * @param provider\n * @param callback\n */\nfunction onAuthWindowOpen(provider, callback, removeProviderConfigCallBack, http?, securityObj?) {\n listeners[provider] = checkAuthenticationStatus.bind(undefined, provider, callback, removeProviderConfigCallBack, null, http, securityObj);\n window.addEventListener('message', listeners[provider], false);\n}\n\n// Generate a secure random string using the browser crypto functions\nfunction generateRandomString() {\n const array = new Uint32Array(28);\n window.crypto.getRandomValues(array);\n return Array.from(array, dec => ('0' + dec.toString(16)).substr(-2)).join('');\n}\n\n// Returns a promise that resolves to an ArrayBuffer\nfunction getEncryptedCode(plain) {\n const encoder = new TextEncoder();\n const data = encoder.encode(plain);\n const shaObj = new jsSHA(\"SHA-256\", \"UINT8ARRAY\", { encoding: \"UTF8\" });\n shaObj.update(data);\n return shaObj.getHash(\"ARRAYBUFFER\");\n}\n\n// Base64-urlencodes the input string\nfunction base64urlencode(str) {\n // Convert the ArrayBuffer to string using Uint8 array to convert to what btoa accepts.\n // btoa accepts chars only within ascii 0-255 and base64 encodes them.\n // Then convert the base64 encoded to base64url encoded\n // (replace + with -, replace / with _, trim trailing =)\n return btoa(String.fromCharCode.apply(null, new Uint8Array(str)))\n .replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n}\n\n/**\n * this function is a callback function which enables the listener and checks for the window existence\n * @param providerId\n * @param onSuccess\n * @param url\n */\nfunction postGetAuthorizationURL(url, providerId, onSuccess, removeProviderConfigCallBack, securityObj?, requestSourceType?, customUriScheme?, deployedURL?, http?) {\n if (isPassedFlow(securityObj, implicitIdentifier)) {\n url = constructURLForImplicitOrPKCE(providerId, securityObj, requestSourceType, null, customUriScheme, deployedURL);\n startoAuthFlow(url, providerId, onSuccess, removeProviderConfigCallBack, securityObj, requestSourceType, customUriScheme, deployedURL, http);\n } else if (isPassedFlow(securityObj, pkceIdentifier)) {\n // Create and store a new PKCE code_verifier (the plaintext random secret)\n code_verifier = generateRandomString();\n let code_challenge;\n if (get(securityObj, 'oAuth2Pkce.challengeMethod') === 'plain') {\n code_challenge = code_verifier;\n url = constructURLForImplicitOrPKCE(providerId, securityObj, requestSourceType, code_challenge, customUriScheme, deployedURL);\n startoAuthFlow(url, providerId, onSuccess, removeProviderConfigCallBack, securityObj, requestSourceType, customUriScheme, deployedURL, http);\n } else {\n const encryptedCode = getEncryptedCode(code_verifier);\n code_challenge = base64urlencode(encryptedCode);\n //code_challenge = encryptedCode;\n url = constructURLForImplicitOrPKCE(providerId, securityObj, requestSourceType, code_challenge, customUriScheme, deployedURL);\n startoAuthFlow(url, providerId, onSuccess, removeProviderConfigCallBack, securityObj, requestSourceType, customUriScheme, deployedURL, http);\n\n }\n } else {\n startoAuthFlow(url, providerId, onSuccess, removeProviderConfigCallBack, securityObj, requestSourceType, customUriScheme, deployedURL, http);\n }\n}\n\nfunction startoAuthFlow(url, providerId, onSuccess, removeProviderConfigCallBack, securityObj?, requestSourceType?, customUriScheme?, deployedURL?, http?) {\n let oAuthWindow;\n oAuthWindow = window.open(url, '_blank', newWindowProps);\n onAuthWindowOpen(providerId, onSuccess, removeProviderConfigCallBack, http, securityObj);\n checkForWindowExistence(oAuthWindow, providerId, onSuccess, securityObj);\n}\n\n/**\n * function to construct the url for implicit flow.\n * @param providerId provider id for which the url has to be set\n * @param providerInfo provider object which contains details such as scope, client id etc\n * @param requestSourceType requesting source is web or mobile\n * @returns url string\n */\nfunction constructURLForImplicitOrPKCE(providerId, providerInfo, requestSourceType, code_challenge, customUriScheme?, deployedURL?) {\n redirectUri = window.location.href.split('/#/')[0] + '/oAuthCallback.html';\n const clientId = providerInfo.clientId;\n const scopes = providerInfo.scopes.map(function(scope) { return scope.name }).join(' ');\n let state;\n if (getWmProjectProperties().isTestRuntime === true) {\n redirectUri = location.protocol + '//' + window.location.host + '/studio/oAuthCallback.html';\n }\n if (requestSourceType === 'MOBILE') {\n redirectUri = deployedURL + 'oAuthCallback.html';\n }\n const flow = isPassedFlow(providerInfo, implicitIdentifier) ? implicitIdentifier : pkceIdentifier;\n state = {providerId: providerId, suffix: accessTokenSuffix, requestSourceType: requestSourceType, flow: flow, scheme: customUriScheme};\n const authUrlArr = providerInfo.authorizationUrl.split('?');\n let connector;\n if (authUrlArr.length === 1) {\n //query params don't exist\n connector = '?';\n } else if (authUrlArr.length > 1 && authUrlArr[1] !== '') {\n //query params exist. Append & instead of ?.\n connector = '&';\n } else {\n //nothing exists after '?'. client_id can be directly appended;\n connector = '';\n }\n const commonUrl = providerInfo.authorizationUrl + connector + 'client_id=' + clientId + '&redirect_uri=' + redirectUri + '&state=' + encodeURIComponent(JSON.stringify(state)) + '&scope=' + encodeURIComponent(scopes);\n let url;\n if (flow === implicitIdentifier) {\n const responseType = providerInfo.responseType ? providerInfo.responseType : 'token';\n url = commonUrl + '&response_type=' + responseType;\n } else {\n url = commonUrl + '&response_type=code&code_challenge=' + code_challenge + '&code_challenge_method=' + get(providerInfo, 'oAuth2Pkce.challengeMethod');\n }\n return url;\n}\n\n/**\n * function to get the authorization url\n * @param params provider id for which the auth url has to be fetched\n * @param successCallback callback to be invoked upon successful fetch of the providers\n * @param failureCallback callback to be invoked upon error\n * @returns {*}\n */\nfunction getAuthorizationUrl(params, http) {\n const action = 'getAuthorizationUrl',\n serviceSettings = parseConfig({\n target: 'oauthConfiguration',\n action: action,\n urlParams: {\n projectId: _WM_APP_PROJECT.id,\n providerId: params.providerId\n },\n params: {\n 'requestSourceType': params.requestSourceType\n }\n });\n return http.send(serviceSettings);\n}\n\n/**\n * function trigger the addProviderConfigCallBack after getting the authorization url\n */\nfunction triggerProviderConfigCallBack(url, providerId, onSuccess, onError, http, addProviderConfigCallBack, removeProviderConfigCallBack, securityObj, requestSourceType, customUriScheme, deployedURL) {\n const urlBody = isPassedFlow(securityObj, implicitIdentifier) || isPassedFlow(securityObj, pkceIdentifier) ? url : url.body;\n addProviderConfigCallBack({\n name: providerId,\n url: urlBody,\n invoke: () => {\n if (isIE()) { // handling for IE\n handleLoginForIE(url, providerId, onSuccess, onError, removeProviderConfigCallBack, securityObj, requestSourceType, customUriScheme, deployedURL);\n } else {\n postGetAuthorizationURL(urlBody, providerId, onSuccess, removeProviderConfigCallBack, securityObj, requestSourceType, customUriScheme, deployedURL, http);\n }\n }\n });\n}\n\n/**\n * this function retrieves the accessToken based on the run/studiomode\n * @param provider\n * @returns {*}\n */\nexport const getAccessToken = (provider, checkLocalStorage) => {\n const accessTokenKey = getAccessTokenPlaceholder(provider);\n if (checkLocalStorage) {\n return localStorage.getItem(provider + accessTokenSuffix);\n }\n return localStorage.getItem(accessTokenKey);\n};\n\n\n/**\n * this function is used to perform the authorization by opening the window and having active listeners\n * @param url\n * @param providerId\n * @param onSuccess\n * @returns {*}\n */\nexport const performAuthorization = (url, providerId, onSuccess, onError, http, addProviderConfigCallBack, removeProviderConfigCallBack, securityObj?, customUriScheme?, deployedURL?) => {\n let requestSourceType = 'WEB';\n if (url) {\n if (isIE()) { // handling for IE\n handleLoginForIE(url, providerId, onSuccess, onError, removeProviderConfigCallBack);\n } else {\n postGetAuthorizationURL(url, providerId, onSuccess, removeProviderConfigCallBack, securityObj, requestSourceType, http);\n }\n } else {\n if (isPassedFlow(securityObj, implicitIdentifier) || isPassedFlow(securityObj, pkceIdentifier)) {\n triggerProviderConfigCallBack(url, providerId, onSuccess, onError, http, addProviderConfigCallBack, removeProviderConfigCallBack, securityObj, requestSourceType, customUriScheme, deployedURL);\n } else {\n return getAuthorizationUrl({\n 'providerId': providerId,\n 'requestSourceType': requestSourceType\n }, http).then((response) => {\n triggerProviderConfigCallBack(response, providerId, onSuccess, onError, http, addProviderConfigCallBack, removeProviderConfigCallBack, securityObj, requestSourceType, customUriScheme, deployedURL);\n });\n }\n }\n};\n","import { Injectable } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\n\nimport { AbstractHttpService } from '@wm/core';\n\nimport { getAccessToken, performAuthorization, removeAccessToken } from './oAuth.utils';\nimport {find, remove} from \"lodash-es\";\n\n@Injectable()\nexport class OAuthService {\n constructor(private httpService: AbstractHttpService) {}\n\n providers = new Subject();\n\n providersConfig = [];\n\n getOAuthProvidersAsObservable(): Observable<any> {\n return this.providers.asObservable();\n }\n\n addProviderConfig(provider) {\n if (!(find(this.providersConfig, {'name': provider.name}))) {\n this.providersConfig.push(provider);\n }\n this.providers.next(this.providersConfig);\n }\n\n removeProviderConfig(providerId) {\n remove(this.providersConfig, provider => provider.name === providerId);\n this.providers.next(this.providersConfig);\n }\n\n perfromOAuthorization(url, providerId, onSuccess, onError, securityObj?, customUriScheme?, deployedURL?) {\n performAuthorization(url, providerId, onSuccess, onError, this.httpService, this.addProviderConfig.bind(this), this.removeProviderConfig.bind(this), securityObj, customUriScheme, deployedURL);\n }\n\n getAccessToken(provider, checkLocalStorage) {\n return getAccessToken(provider, checkLocalStorage);\n }\n\n removeAccessToken(provider) {\n removeAccessToken(provider);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../projects/oAuth/src/oAuth.utils.ts","../../../projects/oAuth/src/oAuth.service.ts","../../../projects/oAuth/src/index.ts"],"sourcesContent":["import { _WM_APP_PROJECT, isIE, getWmProjectProperties } from '@wm/core';\nimport {get, isUndefined} from \"lodash-es\";\n\nimport * as momentLib from 'moment';\nconst moment = momentLib.default || window['moment'];\ndeclare const jsSHA;\n\nconst accessTokenSuffix = '.access_token', pkceIdentifier = 'pkce', implicitIdentifier = 'implicit';\n\nlet code_verifier, redirectUri;\n\nexport const parseConfig = (serviceParams: any): any => {\n\n let val, param, config;\n const urlParams = serviceParams.urlParams;\n\n config = {\n url: 'services/oauth2/:providerId/authorizationUrl',\n method: 'GET'\n };\n\n /*To handle dynamic urls, append the serviceParams.config.url with the static url(i.e., config.url)*/\n if (serviceParams.config) {\n config.url = (serviceParams.config.url || '') + config.url;\n config.method = serviceParams.config.method || config.method;\n config.headers = config.headers || {};\n\n // TODO[Shubham] - change to for - of\n for (const key in serviceParams.config.headers) {\n val = serviceParams.config.headers[key];\n config.headers[key] = val;\n }\n }\n /* check for url parameters to replace the url */\n if (urlParams) {\n for (param in urlParams) {\n if (urlParams.hasOwnProperty(param)) {\n val = urlParams[param];\n if (!isUndefined(val) && val !== null) {\n config.url = config.url.replace(new RegExp(':' + param, 'g'), val);\n }\n }\n }\n }\n\n /* check for data */\n if (serviceParams.params) {\n config.params = serviceParams.params;\n }\n /* check for data */\n if (!isUndefined(serviceParams.data)) {\n config.data = serviceParams.data;\n }\n /* check for data parameters, written to support old service calls (.json calls) */\n if (serviceParams.dataParams) {\n config.data.params = serviceParams.dataParams;\n }\n /* check for headers */\n if (serviceParams.headers) {\n config.headers = serviceParams.headers;\n }\n\n /* set extra config flags */\n config.byPassResult = serviceParams.byPassResult;\n config.isDirectCall = serviceParams.isDirectCall;\n config.isExtURL = serviceParams.isExtURL;\n config.preventMultiple = serviceParams.preventMultiple;\n config.responseType = serviceParams.responseType;\n\n return config;\n};\n\nconst listeners = {},\n ACCESSTOKEN_PLACEHOLDERS = {\n 'STUDIO': 'WM_STUDIO_',\n 'RUN': 'WM_RUN_'\n },\n newWindowProps = 'width=400,height=600';\n\n/**\n * This function remove the accessToken for a provider\n * @param provider\n */\nexport const removeAccessToken = (provider) => {\n const accessTokenKey = getAccessTokenPlaceholder(provider);\n localStorage.removeItem(accessTokenKey);\n};\n\n/**\n * This function returns the accesstoken placeholder based on the studio or run mode for the project\n * @param provider\n * @returns {*}\n */\nfunction getAccessTokenPlaceholder(provider) {\n let accessTokenKey;\n accessTokenKey = ACCESSTOKEN_PLACEHOLDERS.RUN + _WM_APP_PROJECT.id + '_' + provider + accessTokenSuffix;\n return accessTokenKey;\n}\n\n/**\n * This function performs the fake local storage update, so the IE gets the latest token instead of returning the cached localStorageValue\n */\nfunction performFakeLocalStorageUpdate() {\n const dummy_key = 'dummy_key';\n localStorage.setItem(dummy_key, dummy_key);\n localStorage.removeItem(dummy_key);\n}\n\n/**\n * This function sets the accessToken\n * @param provider\n * @param accesstoken\n */\nfunction setAccessToken(provider, accesstoken) {\n const accessTokenKey = getAccessTokenPlaceholder(provider);\n localStorage.setItem(accessTokenKey, accesstoken);\n}\n\n/**\n * this is a callback function to check if the authentication is done and invokes the successCallback\n * @param providerId\n * @param successCallback\n * @param evt\n */\nfunction checkAuthenticationStatus(providerId, successCallback, removeProviderConfigCallBack, evt, http?, securityObj?) {\n const accessTokenKey = providerId + accessTokenSuffix,\n accessTokenOrCode = localStorage.getItem(accessTokenKey);\n if (evt && evt.origin !== window.location.origin) {\n return;\n }\n if (accessTokenOrCode) {\n if (isPassedFlow(securityObj, pkceIdentifier)) {\n const req = 'client_id=' + securityObj.clientId + '&code=' + accessTokenOrCode + '&grant_type=authorization_code&code_verifier=' + code_verifier + '&redirect_uri=' + redirectUri;\n http.send({\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded'\n },\n url: securityObj.accessTokenUrl,\n data: req\n }).then(function(response) {\n triggerAccessTokenSuccessCallback(providerId, successCallback, removeProviderConfigCallBack, accessTokenKey, response.body.access_token);\n });\n } else {\n triggerAccessTokenSuccessCallback(providerId, successCallback, removeProviderConfigCallBack, accessTokenKey, accessTokenOrCode);\n }\n }\n}\n\n/**\n * function trigger the successCallback after getting the access token\n */\nfunction triggerAccessTokenSuccessCallback(providerId, successCallback, removeProviderConfigCallBack, accessTokenKey, token) {\n removeProviderConfigCallBack(providerId);\n localStorage.removeItem(accessTokenKey);\n setAccessToken(providerId, token);\n window.removeEventListener('message', listeners[providerId]);\n setTimeout(() => {\n delete listeners[providerId];\n if (successCallback) {\n successCallback(token);\n }\n });\n}\n\n/**\n * this function keeps on checking the accesstoken in the LocalStorage and updates it accordingly\n * @param providerId\n * @param onSuccess\n * @param onError\n * @param startTime\n * @param loginObj\n */\nfunction checkAccessTokenInWindow(providerId, onSuccess, onError, startTime, loginObj, removeProviderConfigCallBack) {\n performFakeLocalStorageUpdate();\n const currentTime = moment.duration(moment().format('HH:mm'), 'HH:mm' as any),\n timeDiff = currentTime.subtract(startTime),\n accessToken = getAccessToken(providerId, true);\n if (accessToken) {\n loginObj.accesstoken_retrieved = true;\n setAccessToken(providerId, accessToken);\n localStorage.removeItem(providerId + accessTokenSuffix);\n removeProviderConfigCallBack(providerId);\n if (onSuccess) {\n onSuccess();\n }\n } else if (timeDiff.minutes() > 1 && onSuccess && !loginObj.accesstoken_retrieved) {\n onSuccess('error');\n } else {\n setTimeout(() => {\n checkAccessTokenInWindow(providerId, onSuccess, onError, startTime, loginObj, removeProviderConfigCallBack);\n }, 3000);\n }\n}\n\n/**\n * checks for the window existence i.e if the window is manually closed by the user or any such\n * @param oAuthWindow\n * @param provider\n * @param callback\n */\nfunction checkForWindowExistence(oAuthWindow, provider, callback, providerInfo?) {\n if (oAuthWindow && listeners[provider]) {\n if (!oAuthWindow.closed) { // .closed is supported across major browser vendors however for IE the user has to enable protected mode from security options\n setTimeout(checkForWindowExistence.bind(undefined, oAuthWindow, provider, callback, providerInfo), 3000);\n } else {\n if (!isPassedFlow(providerInfo, pkceIdentifier)) {\n window.removeEventListener('message', listeners[provider]);\n delete listeners[provider];\n if (callback) {\n callback('error');\n }\n }\n }\n }\n}\n/**\n * this functions handles the logic related to the window operations in IE\n * @param url\n * @param providerId\n * @param onSuccess\n * @param onError\n */\nfunction handleLoginForIE(url, providerId, onSuccess, onError, removeProviderConfigCallBack, securityObj?, requestSourceType?, customUriScheme?, deployedURL?) {\n const loginObj = {\n 'accesstoken_retrieved': false\n };\n if (isPassedFlow(securityObj, implicitIdentifier)) {\n url = constructURLForImplicitOrPKCE(providerId, securityObj, requestSourceType, null, customUriScheme, deployedURL);\n }\n window.open(url, '_blank', newWindowProps);\n checkAccessTokenInWindow(providerId, onSuccess, onError, moment.duration(moment().format('HH:mm'), 'HH:mm' as any), loginObj, removeProviderConfigCallBack);\n}\n\n/**\n * this functions returns if the current oAuth Flow matches the passed flow or not\n * @param providerInfo\n */\nfunction isPassedFlow(providerInfo, flow) {\n let oAuthFlow = get(providerInfo, 'oauth2Flow');\n oAuthFlow = oAuthFlow ? oAuthFlow.toLowerCase() : oAuthFlow;\n if (flow === pkceIdentifier) {\n if (get(providerInfo, 'oAuth2Pkce.enabled') === true) {\n oAuthFlow = pkceIdentifier;\n }\n }\n return oAuthFlow === flow;\n}\n\n/**\n * this function adds the listener on the window and assigns the listener\n * @param provider\n * @param callback\n */\nfunction onAuthWindowOpen(provider, callback, removeProviderConfigCallBack, http?, securityObj?) {\n listeners[provider] = checkAuthenticationStatus.bind(undefined, provider, callback, removeProviderConfigCallBack, null, http, securityObj);\n window.addEventListener('message', listeners[provider], false);\n}\n\n// Generate a secure random string using the browser crypto functions\nfunction generateRandomString() {\n const array = new Uint32Array(28);\n window.crypto.getRandomValues(array);\n return Array.from(array, dec => ('0' + dec.toString(16)).substr(-2)).join('');\n}\n\n// Returns a promise that resolves to an ArrayBuffer\nfunction getEncryptedCode(plain) {\n const encoder = new TextEncoder();\n const data = encoder.encode(plain);\n const shaObj = new jsSHA(\"SHA-256\", \"UINT8ARRAY\", { encoding: \"UTF8\" });\n shaObj.update(data);\n return shaObj.getHash(\"ARRAYBUFFER\");\n}\n\n// Base64-urlencodes the input string\nfunction base64urlencode(str) {\n // Convert the ArrayBuffer to string using Uint8 array to convert to what btoa accepts.\n // btoa accepts chars only within ascii 0-255 and base64 encodes them.\n // Then convert the base64 encoded to base64url encoded\n // (replace + with -, replace / with _, trim trailing =)\n return btoa(String.fromCharCode.apply(null, new Uint8Array(str)))\n .replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n}\n\n/**\n * this function is a callback function which enables the listener and checks for the window existence\n * @param providerId\n * @param onSuccess\n * @param url\n */\nfunction postGetAuthorizationURL(url, providerId, onSuccess, removeProviderConfigCallBack, securityObj?, requestSourceType?, customUriScheme?, deployedURL?, http?) {\n if (isPassedFlow(securityObj, implicitIdentifier)) {\n url = constructURLForImplicitOrPKCE(providerId, securityObj, requestSourceType, null, customUriScheme, deployedURL);\n startoAuthFlow(url, providerId, onSuccess, removeProviderConfigCallBack, securityObj, requestSourceType, customUriScheme, deployedURL, http);\n } else if (isPassedFlow(securityObj, pkceIdentifier)) {\n // Create and store a new PKCE code_verifier (the plaintext random secret)\n code_verifier = generateRandomString();\n let code_challenge;\n if (get(securityObj, 'oAuth2Pkce.challengeMethod') === 'plain') {\n code_challenge = code_verifier;\n url = constructURLForImplicitOrPKCE(providerId, securityObj, requestSourceType, code_challenge, customUriScheme, deployedURL);\n startoAuthFlow(url, providerId, onSuccess, removeProviderConfigCallBack, securityObj, requestSourceType, customUriScheme, deployedURL, http);\n } else {\n const encryptedCode = getEncryptedCode(code_verifier);\n code_challenge = base64urlencode(encryptedCode);\n //code_challenge = encryptedCode;\n url = constructURLForImplicitOrPKCE(providerId, securityObj, requestSourceType, code_challenge, customUriScheme, deployedURL);\n startoAuthFlow(url, providerId, onSuccess, removeProviderConfigCallBack, securityObj, requestSourceType, customUriScheme, deployedURL, http);\n\n }\n } else {\n startoAuthFlow(url, providerId, onSuccess, removeProviderConfigCallBack, securityObj, requestSourceType, customUriScheme, deployedURL, http);\n }\n}\n\nfunction startoAuthFlow(url, providerId, onSuccess, removeProviderConfigCallBack, securityObj?, requestSourceType?, customUriScheme?, deployedURL?, http?) {\n let oAuthWindow;\n oAuthWindow = window.open(url, '_blank', newWindowProps);\n onAuthWindowOpen(providerId, onSuccess, removeProviderConfigCallBack, http, securityObj);\n checkForWindowExistence(oAuthWindow, providerId, onSuccess, securityObj);\n}\n\n/**\n * function to construct the url for implicit flow.\n * @param providerId provider id for which the url has to be set\n * @param providerInfo provider object which contains details such as scope, client id etc\n * @param requestSourceType requesting source is web or mobile\n * @returns url string\n */\nfunction constructURLForImplicitOrPKCE(providerId, providerInfo, requestSourceType, code_challenge, customUriScheme?, deployedURL?) {\n redirectUri = window.location.href.split('/#/')[0] + '/oAuthCallback.html';\n const clientId = providerInfo.clientId;\n const scopes = providerInfo.scopes.map(function(scope) { return scope.name }).join(' ');\n let state;\n if (getWmProjectProperties().isTestRuntime === true) {\n redirectUri = location.protocol + '//' + window.location.host + '/studio/oAuthCallback.html';\n }\n if (requestSourceType === 'MOBILE') {\n redirectUri = deployedURL + 'oAuthCallback.html';\n }\n const flow = isPassedFlow(providerInfo, implicitIdentifier) ? implicitIdentifier : pkceIdentifier;\n state = {providerId: providerId, suffix: accessTokenSuffix, requestSourceType: requestSourceType, flow: flow, scheme: customUriScheme};\n const authUrlArr = providerInfo.authorizationUrl.split('?');\n let connector;\n if (authUrlArr.length === 1) {\n //query params don't exist\n connector = '?';\n } else if (authUrlArr.length > 1 && authUrlArr[1] !== '') {\n //query params exist. Append & instead of ?.\n connector = '&';\n } else {\n //nothing exists after '?'. client_id can be directly appended;\n connector = '';\n }\n const commonUrl = providerInfo.authorizationUrl + connector + 'client_id=' + clientId + '&redirect_uri=' + redirectUri + '&state=' + encodeURIComponent(JSON.stringify(state)) + '&scope=' + encodeURIComponent(scopes);\n let url;\n if (flow === implicitIdentifier) {\n const responseType = providerInfo.responseType ? providerInfo.responseType : 'token';\n url = commonUrl + '&response_type=' + responseType;\n } else {\n url = commonUrl + '&response_type=code&code_challenge=' + code_challenge + '&code_challenge_method=' + get(providerInfo, 'oAuth2Pkce.challengeMethod');\n }\n return url;\n}\n\n/**\n * function to get the authorization url\n * @param params provider id for which the auth url has to be fetched\n * @param successCallback callback to be invoked upon successful fetch of the providers\n * @param failureCallback callback to be invoked upon error\n * @returns {*}\n */\nfunction getAuthorizationUrl(params, http) {\n const action = 'getAuthorizationUrl',\n serviceSettings = parseConfig({\n target: 'oauthConfiguration',\n action: action,\n urlParams: {\n projectId: _WM_APP_PROJECT.id,\n providerId: params.providerId\n },\n params: {\n 'requestSourceType': params.requestSourceType\n }\n });\n return http.send(serviceSettings);\n}\n\n/**\n * function trigger the addProviderConfigCallBack after getting the authorization url\n */\nfunction triggerProviderConfigCallBack(url, providerId, onSuccess, onError, http, addProviderConfigCallBack, removeProviderConfigCallBack, securityObj, requestSourceType, customUriScheme, deployedURL) {\n const urlBody = isPassedFlow(securityObj, implicitIdentifier) || isPassedFlow(securityObj, pkceIdentifier) ? url : url.body;\n addProviderConfigCallBack({\n name: providerId,\n url: urlBody,\n invoke: () => {\n if (isIE()) { // handling for IE\n handleLoginForIE(url, providerId, onSuccess, onError, removeProviderConfigCallBack, securityObj, requestSourceType, customUriScheme, deployedURL);\n } else {\n postGetAuthorizationURL(urlBody, providerId, onSuccess, removeProviderConfigCallBack, securityObj, requestSourceType, customUriScheme, deployedURL, http);\n }\n }\n });\n}\n\n/**\n * this function retrieves the accessToken based on the run/studiomode\n * @param provider\n * @returns {*}\n */\nexport const getAccessToken = (provider, checkLocalStorage) => {\n const accessTokenKey = getAccessTokenPlaceholder(provider);\n if (checkLocalStorage) {\n return localStorage.getItem(provider + accessTokenSuffix);\n }\n return localStorage.getItem(accessTokenKey);\n};\n\n\n/**\n * this function is used to perform the authorization by opening the window and having active listeners\n * @param url\n * @param providerId\n * @param onSuccess\n * @returns {*}\n */\nexport const performAuthorization = (url, providerId, onSuccess, onError, http, addProviderConfigCallBack, removeProviderConfigCallBack, securityObj?, customUriScheme?, deployedURL?) => {\n let requestSourceType = 'WEB';\n if (url) {\n if (isIE()) { // handling for IE\n handleLoginForIE(url, providerId, onSuccess, onError, removeProviderConfigCallBack);\n } else {\n postGetAuthorizationURL(url, providerId, onSuccess, removeProviderConfigCallBack, securityObj, requestSourceType, http);\n }\n } else {\n if (isPassedFlow(securityObj, implicitIdentifier) || isPassedFlow(securityObj, pkceIdentifier)) {\n triggerProviderConfigCallBack(url, providerId, onSuccess, onError, http, addProviderConfigCallBack, removeProviderConfigCallBack, securityObj, requestSourceType, customUriScheme, deployedURL);\n } else {\n return getAuthorizationUrl({\n 'providerId': providerId,\n 'requestSourceType': requestSourceType\n }, http).then((response) => {\n triggerProviderConfigCallBack(response, providerId, onSuccess, onError, http, addProviderConfigCallBack, removeProviderConfigCallBack, securityObj, requestSourceType, customUriScheme, deployedURL);\n });\n }\n }\n};\n","import { Injectable } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\n\nimport { AbstractHttpService } from '@wm/core';\n\nimport { getAccessToken, performAuthorization, removeAccessToken } from './oAuth.utils';\nimport {find, remove} from \"lodash-es\";\n\n@Injectable()\nexport class OAuthService {\n constructor(private httpService: AbstractHttpService) {}\n\n providers = new Subject();\n\n providersConfig = [];\n\n getOAuthProvidersAsObservable(): Observable<any> {\n return this.providers.asObservable();\n }\n\n addProviderConfig(provider) {\n if (!(find(this.providersConfig, {'name': provider.name}))) {\n this.providersConfig.push(provider);\n }\n this.providers.next(this.providersConfig);\n }\n\n removeProviderConfig(providerId) {\n remove<any>(this.providersConfig, provider => provider.name === providerId);\n this.providers.next(this.providersConfig);\n }\n\n perfromOAuthorization(url, providerId, onSuccess, onError, securityObj?, customUriScheme?, deployedURL?) {\n performAuthorization(url, providerId, onSuccess, onError, this.httpService, this.addProviderConfig.bind(this), this.removeProviderConfig.bind(this), securityObj, customUriScheme, deployedURL);\n }\n\n getAccessToken(provider, checkLocalStorage) {\n return getAccessToken(provider, checkLocalStorage);\n }\n\n removeAccessToken(provider) {\n removeAccessToken(provider);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
package/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wavemaker/app-ng-runtime",
|
|
3
|
-
"version": "11.11.
|
|
3
|
+
"version": "11.11.5-rc.214",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@wavemaker/app-ng-runtime",
|
|
9
|
-
"version": "11.11.
|
|
9
|
+
"version": "11.11.5-rc.214",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"engines": {
|
|
12
12
|
"node": ">=18.16.1",
|