@wavemaker/app-ng-runtime 12.0.0-next.44005 → 12.0.0-next.45001

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 (105) hide show
  1. app-ng-runtime/build-task/advanced/custom-widget-container/custom-widget-container.build.d.ts +2 -0
  2. app-ng-runtime/build-task/advanced/custom-widget-prop/custom-widget-prop.build.d.ts +2 -0
  3. app-ng-runtime/build-task/advanced/custom-widget-wrapper/custom-widget-wrapper.build.d.ts +2 -0
  4. app-ng-runtime/build-task/bundles/index.umd.js +477 -404
  5. app-ng-runtime/build-task/esm2022/advanced/custom-widget-container/custom-widget-container.build.mjs +15 -0
  6. app-ng-runtime/build-task/esm2022/advanced/custom-widget-prop/custom-widget-prop.build.mjs +10 -0
  7. app-ng-runtime/build-task/esm2022/advanced/custom-widget-wrapper/custom-widget-wrapper.build.mjs +26 -0
  8. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +3 -2
  9. app-ng-runtime/build-task/esm2022/navigation/menu/menu.build.mjs +14 -2
  10. app-ng-runtime/build-task/esm2022/public_api.mjs +4 -1
  11. app-ng-runtime/build-task/fesm2022/index.mjs +479 -405
  12. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  13. app-ng-runtime/build-task/public_api.d.ts +3 -0
  14. app-ng-runtime/components/advanced/custom/bundles/index.umd.js +275 -0
  15. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +14 -0
  16. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget.props.d.ts +1 -0
  17. app-ng-runtime/components/advanced/custom/custom-widget-container-prop/custom-widget-container-prop.directive.d.ts +20 -0
  18. app-ng-runtime/components/advanced/custom/custom-widget-prop.d.ts +1 -0
  19. app-ng-runtime/components/advanced/custom/custom-widget.directive.d.ts +19 -0
  20. app-ng-runtime/components/advanced/custom/custom-widget.module.d.ts +11 -0
  21. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +73 -0
  22. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget.props.mjs +9 -0
  23. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container-prop/custom-widget-container-prop.directive.mjs +70 -0
  24. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-prop.mjs +8 -0
  25. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.directive.mjs +68 -0
  26. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.module.mjs +39 -0
  27. app-ng-runtime/components/advanced/custom/esm2022/index.mjs +5 -0
  28. app-ng-runtime/components/advanced/custom/esm2022/public_api.mjs +5 -0
  29. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs +256 -0
  30. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs.map +1 -0
  31. app-ng-runtime/components/advanced/custom/index.d.ts +5 -0
  32. app-ng-runtime/components/advanced/custom/package.json +23 -0
  33. app-ng-runtime/components/advanced/custom/public_api.d.ts +4 -0
  34. app-ng-runtime/components/base/bundles/index.umd.js +65 -9
  35. app-ng-runtime/components/base/components.module.d.ts +12 -11
  36. app-ng-runtime/components/base/esm2022/components.module.mjs +5 -1
  37. app-ng-runtime/components/base/esm2022/public_api.mjs +2 -1
  38. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +28 -10
  39. app-ng-runtime/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +39 -0
  40. app-ng-runtime/components/base/fesm2022/index.mjs +65 -10
  41. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  42. app-ng-runtime/components/base/public_api.d.ts +1 -0
  43. app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +9 -3
  44. app-ng-runtime/components/base/widgets/common/base/custom-widget-container.directive.d.ts +14 -0
  45. app-ng-runtime/components/basic/default/audio/audio.component.d.ts +1 -0
  46. app-ng-runtime/components/basic/default/bundles/index.umd.js +5 -4
  47. app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +6 -5
  48. app-ng-runtime/components/basic/default/fesm2022/index.mjs +5 -4
  49. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  50. app-ng-runtime/components/basic/progress/bundles/index.umd.js +3 -2
  51. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +4 -3
  52. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +3 -2
  53. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  54. app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +1 -0
  55. app-ng-runtime/components/data/form/bundles/index.umd.js +4 -3
  56. app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +1 -2
  57. app-ng-runtime/components/data/form/esm2022/live-form/live-form.directive.mjs +5 -3
  58. app-ng-runtime/components/data/form/fesm2022/index.mjs +4 -3
  59. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  60. app-ng-runtime/components/input/default/bundles/index.umd.js +46 -53
  61. app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +2 -3
  62. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +44 -53
  63. app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +4 -1
  64. app-ng-runtime/components/input/default/fesm2022/index.mjs +47 -54
  65. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  66. app-ng-runtime/components/input/default/select/select.component.d.ts +1 -2
  67. app-ng-runtime/components/input/epoch/bundles/index.umd.js +19 -7
  68. app-ng-runtime/components/input/epoch/date/date.component.d.ts +1 -0
  69. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +9 -3
  70. app-ng-runtime/components/input/epoch/esm2022/date/imaskUtil.mjs +8 -2
  71. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +3 -3
  72. app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +3 -3
  73. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +19 -7
  74. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  75. app-ng-runtime/core/bundles/index.umd.js +10 -0
  76. app-ng-runtime/core/enums/enums.d.ts +2 -1
  77. app-ng-runtime/core/esm2022/enums/enums.mjs +2 -1
  78. app-ng-runtime/core/esm2022/types/types.mjs +4 -1
  79. app-ng-runtime/core/esm2022/utils/build-utils.mjs +6 -1
  80. app-ng-runtime/core/fesm2022/index.mjs +10 -1
  81. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  82. app-ng-runtime/core/types/types.d.ts +5 -1
  83. app-ng-runtime/package.json +1 -1
  84. app-ng-runtime/runtime/base/bundles/index.umd.js +254 -4
  85. app-ng-runtime/runtime/base/components/base-custom-widget.component.d.ts +71 -0
  86. app-ng-runtime/runtime/base/esm2022/components/base-custom-widget.component.mjs +253 -0
  87. app-ng-runtime/runtime/base/esm2022/public_api.mjs +2 -1
  88. app-ng-runtime/runtime/base/esm2022/runtime-base.module.mjs +6 -1
  89. app-ng-runtime/runtime/base/esm2022/types/types.mjs +2 -1
  90. app-ng-runtime/runtime/base/fesm2022/index.mjs +251 -1
  91. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  92. app-ng-runtime/runtime/base/public_api.d.ts +1 -0
  93. app-ng-runtime/runtime/base/runtime-base.module.d.ts +9 -8
  94. app-ng-runtime/runtime/base/types/types.d.ts +2 -1
  95. app-ng-runtime/runtime/dynamic/bundles/index.umd.js +26 -9
  96. app-ng-runtime/runtime/dynamic/esm2022/app/app.module.mjs +5 -2
  97. app-ng-runtime/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +22 -7
  98. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +25 -7
  99. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  100. app-ng-runtime/scripts/datatable/datatable.js +1 -0
  101. app-ng-runtime/transpiler/bundles/index.umd.js +5 -0
  102. app-ng-runtime/transpiler/esm2022/build.mjs +4 -1
  103. app-ng-runtime/transpiler/esm2022/imports.mjs +3 -1
  104. app-ng-runtime/transpiler/fesm2022/index.mjs +5 -0
  105. app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
@@ -105,5 +105,8 @@ export * as tableBuild from './data/table/table.build';
105
105
  export * as videoBuild from './basic/default/video/video.build';
106
106
  export * as linearLayoutBuild from './containers/linear-layout/linear-layout.build';
107
107
  export * as linearLayoutItemBuild from './containers/linear-layout/linear-layout-item/linear-layout-item.build';
108
+ export * as customWidgetBuild from './advanced/custom-widget-container/custom-widget-container.build';
109
+ export * as customWidgetPropBuild from './advanced/custom-widget-prop/custom-widget-prop.build';
110
+ export * as customWidgetWrapperBuild from './advanced/custom-widget-wrapper/custom-widget-wrapper.build';
108
111
  export * from '@wm/transpiler';
109
112
  export declare const initComponentsBuildTask: () => void;
@@ -0,0 +1,275 @@
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@wm/components/base'), require('@wm/core'), require('rxjs')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/common', '@wm/components/base', '@wm/core', 'rxjs'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.wm = global.wm || {}, global.wm.components = global.wm.components || {}, global.wm.components.advanced = global.wm.components.advanced || {}, global.wm.components.advanced.custom = {}), global.ng.core, global.ng.common, global.wm.components.base, global.wm.core, global.rxjs));
5
+ })(this, (function (exports, i0, common, base, i1, rxjs) { 'use strict';
6
+
7
+ function _interopNamespaceDefault(e) {
8
+ var n = Object.create(null);
9
+ if (e) {
10
+ Object.keys(e).forEach(function (k) {
11
+ if (k !== 'default') {
12
+ var d = Object.getOwnPropertyDescriptor(e, k);
13
+ Object.defineProperty(n, k, d.get ? d : {
14
+ enumerable: true,
15
+ get: function () { return e[k]; }
16
+ });
17
+ }
18
+ });
19
+ }
20
+ n.default = e;
21
+ return Object.freeze(n);
22
+ }
23
+
24
+ var i0__namespace = /*#__PURE__*/_interopNamespaceDefault(i0);
25
+ var i1__namespace = /*#__PURE__*/_interopNamespaceDefault(i1);
26
+
27
+ const customWidgetProps = new Map([
28
+ ['class', base.PROP_STRING],
29
+ ['hint', base.PROP_STRING],
30
+ ['name', base.PROP_STRING],
31
+ ['widgetname', base.PROP_STRING],
32
+ ['show', { value: true, ...base.PROP_BOOLEAN }]
33
+ ]);
34
+
35
+ const registeredPropsSet = new Set();
36
+ const DEFAULT_CLS$1 = 'app-html-container';
37
+ const WIDGET_CONFIG$1 = {
38
+ widgetType: 'wm-custom-widget',
39
+ hostClass: DEFAULT_CLS$1
40
+ };
41
+ class CustomWidgetContainerDirective extends base.StylableComponent {
42
+ constructor(inj, elRef, widgetname) {
43
+ let resolveFn = i1.noop;
44
+ super(inj, WIDGET_CONFIG$1, new Promise(res => resolveFn = res));
45
+ this.propsReady = resolveFn;
46
+ this.widgetType = WIDGET_CONFIG$1.widgetType;
47
+ this.widgetName = widgetname;
48
+ this.name = elRef.nativeElement.getAttribute('name');
49
+ base.styler(this.nativeElement, this);
50
+ // Call on property change on name to set name attribute on element.
51
+ this.registerReadyStateListener(() => {
52
+ super.onPropertyChange('name', this.name);
53
+ });
54
+ }
55
+ setProps(config, resolveFn) {
56
+ if (!config || !config.properties) {
57
+ return;
58
+ }
59
+ if (!registeredPropsSet.has(this.widgetType)) {
60
+ base.register(this.widgetType, this.prepareProps(config.properties));
61
+ }
62
+ this.propsReady(resolveFn);
63
+ }
64
+ prepareProps(props = {}) {
65
+ const propsMap = new Map(customWidgetProps);
66
+ // propsMap.set('widgetname', this.widgetName);
67
+ Object.entries(props).forEach(([k, v]) => {
68
+ let type = base.PROP_TYPE.STRING;
69
+ if (v.type === 'boolean') {
70
+ type = base.PROP_TYPE.BOOLEAN;
71
+ }
72
+ else if (v.type === 'number') {
73
+ type = base.PROP_TYPE.NUMBER;
74
+ }
75
+ else if (v.type !== 'string') {
76
+ type = v.type;
77
+ }
78
+ // Do not set the 'bind:*' values
79
+ propsMap.set(k, { type, value: _.startsWith(v.value, 'bind:') ? undefined : v.value });
80
+ });
81
+ registeredPropsSet.add(this.widgetType);
82
+ return propsMap;
83
+ }
84
+ static { this.ɵfac = function CustomWidgetContainerDirective_Factory(t) { return new (t || CustomWidgetContainerDirective)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(i0__namespace.ElementRef), i0__namespace.ɵɵinjectAttribute('widgetname')); }; }
85
+ static { this.ɵdir = /*@__PURE__*/ i0__namespace.ɵɵdefineDirective({ type: CustomWidgetContainerDirective, selectors: [["", "wmWidgetContainer", ""]], exportAs: ["wmWidgetContainer"], features: [i0__namespace.ɵɵProvidersFeature([
86
+ base.provideAsWidgetRef(CustomWidgetContainerDirective)
87
+ ]), i0__namespace.ɵɵInheritDefinitionFeature] }); }
88
+ }
89
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(CustomWidgetContainerDirective, [{
90
+ type: i0.Directive,
91
+ args: [{
92
+ selector: '[wmWidgetContainer]',
93
+ providers: [
94
+ base.provideAsWidgetRef(CustomWidgetContainerDirective)
95
+ ],
96
+ exportAs: 'wmWidgetContainer'
97
+ }]
98
+ }], function () { return [{ type: i0__namespace.Injector }, { type: i0__namespace.ElementRef }, { type: undefined, decorators: [{
99
+ type: i0.Attribute,
100
+ args: ['widgetname']
101
+ }] }]; }, null); })();
102
+
103
+ class CustomWidgetPropHandlerDirective {
104
+ constructor(widgetRef) {
105
+ this.widgetRef = widgetRef;
106
+ this.widgetRef.props = {};
107
+ this.widgetRef.pageParams = this.widgetRef.props;
108
+ this.widgetRef.params$ = new rxjs.Subject();
109
+ }
110
+ registerParams(name, value, bindExpr, type) {
111
+ this.widgetRef.props[name] = value;
112
+ if (!value && bindExpr) {
113
+ this.widgetRef.registerDestroyListener(
114
+ //[Todo-CSP]: expr fn should be generated be default
115
+ i1.$watch(bindExpr, this.widgetRef.getViewParent(), _.get(this.widgetRef, 'context'), nv => {
116
+ this.widgetRef.props[name] = nv;
117
+ // notify the partial container of the param changes
118
+ this.widgetRef.params$.next();
119
+ }));
120
+ }
121
+ else {
122
+ this.widgetRef.params$.next();
123
+ }
124
+ }
125
+ static { this.ɵfac = function CustomWidgetPropHandlerDirective_Factory(t) { return new (t || CustomWidgetPropHandlerDirective)(i0__namespace.ɵɵdirectiveInject(base.WidgetRef, 2)); }; }
126
+ static { this.ɵdir = /*@__PURE__*/ i0__namespace.ɵɵdefineDirective({ type: CustomWidgetPropHandlerDirective, selectors: [["", "customWidgetContainer", ""]] }); }
127
+ }
128
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(CustomWidgetPropHandlerDirective, [{
129
+ type: i0.Directive,
130
+ args: [{
131
+ selector: '[customWidgetContainer]',
132
+ }]
133
+ }], function () { return [{ type: undefined, decorators: [{
134
+ type: i0.Self
135
+ }, {
136
+ type: i0.Inject,
137
+ args: [base.WidgetRef]
138
+ }] }]; }, null); })();
139
+ class CustomWidgetPropDirective {
140
+ constructor(bindValue, type, customWidgetPropsProvider) {
141
+ this.bindValue = bindValue;
142
+ this.type = type;
143
+ this.customWidgetPropsProvider = customWidgetPropsProvider;
144
+ }
145
+ ngOnInit() {
146
+ this.customWidgetPropsProvider.registerParams(this.name, this.value, this.bindValue, this.type);
147
+ }
148
+ static { this.ɵfac = function CustomWidgetPropDirective_Factory(t) { return new (t || CustomWidgetPropDirective)(i0__namespace.ɵɵinjectAttribute('value.bind'), i0__namespace.ɵɵinjectAttribute('type'), i0__namespace.ɵɵdirectiveInject(CustomWidgetPropHandlerDirective)); }; }
149
+ static { this.ɵdir = /*@__PURE__*/ i0__namespace.ɵɵdefineDirective({ type: CustomWidgetPropDirective, selectors: [["", "wmProp", ""]], inputs: { name: "name", value: "value" } }); }
150
+ }
151
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(CustomWidgetPropDirective, [{
152
+ type: i0.Directive,
153
+ args: [{
154
+ selector: '[wmProp]',
155
+ }]
156
+ }], function () { return [{ type: undefined, decorators: [{
157
+ type: i0.Attribute,
158
+ args: ['value.bind']
159
+ }] }, { type: undefined, decorators: [{
160
+ type: i0.Attribute,
161
+ args: ['type']
162
+ }] }, { type: CustomWidgetPropHandlerDirective }]; }, { name: [{
163
+ type: i0.Input
164
+ }], value: [{
165
+ type: i0.Input
166
+ }] }); })();
167
+
168
+ const registerProps = () => {
169
+ base.register('wm-custom-widget-container', new Map([
170
+ ['name', base.PROP_STRING],
171
+ ['class', base.PROP_STRING]
172
+ ]));
173
+ };
174
+
175
+ const DEFAULT_CLS = 'app-custom-widget-container clearfix';
176
+ const WIDGET_CONFIG = { widgetType: 'wm-custom-widget-container', hostClass: DEFAULT_CLS };
177
+ class CustomWidgetDirective extends base.StylableComponent {
178
+ static { this.initializeProps = registerProps(); }
179
+ constructor(inj, viewport) {
180
+ super(inj, WIDGET_CONFIG);
181
+ this.viewport = viewport;
182
+ this.registerDestroyListener(this.viewport.subscribe("resize" /* ViewportEvent.RESIZE */, data => this.callback('resize', data)));
183
+ this.registerDestroyListener(this.viewport.subscribe("orientationchange" /* ViewportEvent.ORIENTATION_CHANGE */, data => this.callback('orientationchange', data)));
184
+ }
185
+ ngAfterContentInit() {
186
+ let customWidget = this.nativeElement.closest('[customwidgetcontainer]'), inheritedProps = {}, customWidgetProps = Array.from(base.getWidgetPropsByType("wm-custom-widget-container").keys());
187
+ for (let i = 0; i < customWidget.attributes.length; i++) {
188
+ let attr = customWidget.attributes.item(i);
189
+ if (attr.value && attr.value !== '' && !customWidgetProps.includes(attr.name))
190
+ inheritedProps[attr.name] = attr.value;
191
+ }
192
+ this.processChildren(this.nativeElement.children, inheritedProps);
193
+ }
194
+ processChildren(children, inheritedProps) {
195
+ Array.from(children).forEach((child) => {
196
+ if (!child.hasAttribute('base-widget'))
197
+ this.processChildren(child.children, inheritedProps);
198
+ else {
199
+ for (const [key, value] of Object.entries(inheritedProps)) {
200
+ if (key.includes(".event"))
201
+ this.processChildAttr(key, value, { widget: child.widget, nativeElement: child });
202
+ else
203
+ child.widget[key] = value;
204
+ }
205
+ }
206
+ });
207
+ }
208
+ callback(eventName, locals) {
209
+ locals = _.assign({ widget: this }, locals);
210
+ this.invokeEventCallback(eventName, locals);
211
+ }
212
+ ngOnAttach() {
213
+ this.callback('attach');
214
+ }
215
+ ngOnDetach() {
216
+ this.callback('detach');
217
+ }
218
+ ngOnDestroy() {
219
+ this.callback('destroy');
220
+ super.ngOnDestroy();
221
+ }
222
+ static { this.ɵfac = function CustomWidgetDirective_Factory(t) { return new (t || CustomWidgetDirective)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(i1__namespace.Viewport)); }; }
223
+ static { this.ɵdir = /*@__PURE__*/ i0__namespace.ɵɵdefineDirective({ type: CustomWidgetDirective, selectors: [["", "wmCustomWidget", ""]], features: [i0__namespace.ɵɵProvidersFeature([
224
+ base.provideAsWidgetRef(CustomWidgetDirective)
225
+ ]), i0__namespace.ɵɵInheritDefinitionFeature] }); }
226
+ }
227
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(CustomWidgetDirective, [{
228
+ type: i0.Directive,
229
+ args: [{
230
+ selector: '[wmCustomWidget]',
231
+ providers: [
232
+ base.provideAsWidgetRef(CustomWidgetDirective)
233
+ ]
234
+ }]
235
+ }], function () { return [{ type: i0__namespace.Injector }, { type: i1__namespace.Viewport }]; }, null); })();
236
+
237
+ const components = [
238
+ CustomWidgetContainerDirective,
239
+ CustomWidgetPropDirective,
240
+ CustomWidgetPropHandlerDirective,
241
+ CustomWidgetDirective
242
+ ];
243
+ class CustomModule {
244
+ static { this.ɵfac = function CustomModule_Factory(t) { return new (t || CustomModule)(); }; }
245
+ static { this.ɵmod = /*@__PURE__*/ i0__namespace.ɵɵdefineNgModule({ type: CustomModule }); }
246
+ static { this.ɵinj = /*@__PURE__*/ i0__namespace.ɵɵdefineInjector({ imports: [common.CommonModule,
247
+ base.WmComponentsModule] }); }
248
+ }
249
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(CustomModule, [{
250
+ type: i0.NgModule,
251
+ args: [{
252
+ imports: [
253
+ common.CommonModule,
254
+ base.WmComponentsModule
255
+ ],
256
+ declarations: [...components],
257
+ exports: [...components]
258
+ }]
259
+ }], null, null); })();
260
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0__namespace.ɵɵsetNgModuleScope(CustomModule, { declarations: [CustomWidgetContainerDirective,
261
+ CustomWidgetPropDirective,
262
+ CustomWidgetPropHandlerDirective,
263
+ CustomWidgetDirective], imports: [common.CommonModule,
264
+ base.WmComponentsModule], exports: [CustomWidgetContainerDirective,
265
+ CustomWidgetPropDirective,
266
+ CustomWidgetPropHandlerDirective,
267
+ CustomWidgetDirective] }); })();
268
+
269
+ exports.CustomModule = CustomModule;
270
+ exports.CustomWidgetContainerDirective = CustomWidgetContainerDirective;
271
+ exports.CustomWidgetDirective = CustomWidgetDirective;
272
+ exports.CustomWidgetPropDirective = CustomWidgetPropDirective;
273
+ exports.CustomWidgetPropHandlerDirective = CustomWidgetPropHandlerDirective;
274
+
275
+ }));
@@ -0,0 +1,14 @@
1
+ import { ElementRef, Injector, OnInit } from '@angular/core';
2
+ import { StylableComponent } from '@wm/components/base';
3
+ import * as i0 from "@angular/core";
4
+ export declare class CustomWidgetContainerDirective extends StylableComponent implements OnInit {
5
+ widgetType: string;
6
+ name: string;
7
+ propsReady: Function;
8
+ widgetName: string;
9
+ constructor(inj: Injector, elRef: ElementRef, widgetname: string);
10
+ setProps(config: any, resolveFn: Function): void;
11
+ private prepareProps;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<CustomWidgetContainerDirective, [null, null, { attribute: "widgetname"; }]>;
13
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CustomWidgetContainerDirective, "[wmWidgetContainer]", ["wmWidgetContainer"], {}, {}, never, never, false, never>;
14
+ }
@@ -0,0 +1 @@
1
+ export declare const customWidgetProps: Map<string, any>;
@@ -0,0 +1,20 @@
1
+ import { OnInit } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class CustomWidgetPropHandlerDirective {
4
+ private widgetRef;
5
+ constructor(widgetRef: any);
6
+ registerParams(name: string, value: string, bindExpr: string, type: string): void;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<CustomWidgetPropHandlerDirective, [{ self: true; }]>;
8
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CustomWidgetPropHandlerDirective, "[customWidgetContainer]", never, {}, {}, never, never, false, never>;
9
+ }
10
+ export declare class CustomWidgetPropDirective implements OnInit {
11
+ bindValue: any;
12
+ type: any;
13
+ private customWidgetPropsProvider;
14
+ name: string;
15
+ value: any;
16
+ constructor(bindValue: any, type: any, customWidgetPropsProvider: CustomWidgetPropHandlerDirective);
17
+ ngOnInit(): void;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<CustomWidgetPropDirective, [{ attribute: "value.bind"; }, { attribute: "type"; }, null]>;
19
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CustomWidgetPropDirective, "[wmProp]", never, { "name": { "alias": "name"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, {}, never, never, false, never>;
20
+ }
@@ -0,0 +1 @@
1
+ export declare const registerProps: () => void;
@@ -0,0 +1,19 @@
1
+ import { AfterContentInit, Injector, OnDestroy } from '@angular/core';
2
+ import { Viewport } from '@wm/core';
3
+ import { StylableComponent } from '@wm/components/base';
4
+ import * as i0 from "@angular/core";
5
+ export declare class CustomWidgetDirective extends StylableComponent implements OnDestroy, AfterContentInit {
6
+ private viewport;
7
+ static initializeProps: void;
8
+ constructor(inj: Injector, viewport: Viewport);
9
+ ngAfterContentInit(): void;
10
+ processChildren(children: any, inheritedProps: {
11
+ [key: string]: string;
12
+ }): void;
13
+ private callback;
14
+ ngOnAttach(): void;
15
+ ngOnDetach(): void;
16
+ ngOnDestroy(): void;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<CustomWidgetDirective, never>;
18
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CustomWidgetDirective, "[wmCustomWidget]", never, {}, {}, never, never, false, never>;
19
+ }
@@ -0,0 +1,11 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./custom-widget-container/custom-widget-container.directive";
3
+ import * as i2 from "./custom-widget-container-prop/custom-widget-container-prop.directive";
4
+ import * as i3 from "./custom-widget.directive";
5
+ import * as i4 from "@angular/common";
6
+ import * as i5 from "@wm/components/base";
7
+ export declare class CustomModule {
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<CustomModule, never>;
9
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CustomModule, [typeof i1.CustomWidgetContainerDirective, typeof i2.CustomWidgetPropDirective, typeof i2.CustomWidgetPropHandlerDirective, typeof i3.CustomWidgetDirective], [typeof i4.CommonModule, typeof i5.WmComponentsModule], [typeof i1.CustomWidgetContainerDirective, typeof i2.CustomWidgetPropDirective, typeof i2.CustomWidgetPropHandlerDirective, typeof i3.CustomWidgetDirective]>;
10
+ static ɵinj: i0.ɵɵInjectorDeclaration<CustomModule>;
11
+ }
@@ -0,0 +1,73 @@
1
+ import { Attribute, Directive, ElementRef, Injector } from '@angular/core';
2
+ import { noop } from '@wm/core';
3
+ import { PROP_TYPE, provideAsWidgetRef, register, StylableComponent, styler } from '@wm/components/base';
4
+ import { customWidgetProps } from './custom-widget.props';
5
+ import * as i0 from "@angular/core";
6
+ const registeredPropsSet = new Set();
7
+ const DEFAULT_CLS = 'app-html-container';
8
+ const WIDGET_CONFIG = {
9
+ widgetType: 'wm-custom-widget',
10
+ hostClass: DEFAULT_CLS
11
+ };
12
+ export class CustomWidgetContainerDirective extends StylableComponent {
13
+ constructor(inj, elRef, widgetname) {
14
+ let resolveFn = noop;
15
+ super(inj, WIDGET_CONFIG, new Promise(res => resolveFn = res));
16
+ this.propsReady = resolveFn;
17
+ this.widgetType = WIDGET_CONFIG.widgetType;
18
+ this.widgetName = widgetname;
19
+ this.name = elRef.nativeElement.getAttribute('name');
20
+ styler(this.nativeElement, this);
21
+ // Call on property change on name to set name attribute on element.
22
+ this.registerReadyStateListener(() => {
23
+ super.onPropertyChange('name', this.name);
24
+ });
25
+ }
26
+ setProps(config, resolveFn) {
27
+ if (!config || !config.properties) {
28
+ return;
29
+ }
30
+ if (!registeredPropsSet.has(this.widgetType)) {
31
+ register(this.widgetType, this.prepareProps(config.properties));
32
+ }
33
+ this.propsReady(resolveFn);
34
+ }
35
+ prepareProps(props = {}) {
36
+ const propsMap = new Map(customWidgetProps);
37
+ // propsMap.set('widgetname', this.widgetName);
38
+ Object.entries(props).forEach(([k, v]) => {
39
+ let type = PROP_TYPE.STRING;
40
+ if (v.type === 'boolean') {
41
+ type = PROP_TYPE.BOOLEAN;
42
+ }
43
+ else if (v.type === 'number') {
44
+ type = PROP_TYPE.NUMBER;
45
+ }
46
+ else if (v.type !== 'string') {
47
+ type = v.type;
48
+ }
49
+ // Do not set the 'bind:*' values
50
+ propsMap.set(k, { type, value: _.startsWith(v.value, 'bind:') ? undefined : v.value });
51
+ });
52
+ registeredPropsSet.add(this.widgetType);
53
+ return propsMap;
54
+ }
55
+ static { this.ɵfac = function CustomWidgetContainerDirective_Factory(t) { return new (t || CustomWidgetContainerDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵinjectAttribute('widgetname')); }; }
56
+ static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: CustomWidgetContainerDirective, selectors: [["", "wmWidgetContainer", ""]], exportAs: ["wmWidgetContainer"], features: [i0.ɵɵProvidersFeature([
57
+ provideAsWidgetRef(CustomWidgetContainerDirective)
58
+ ]), i0.ɵɵInheritDefinitionFeature] }); }
59
+ }
60
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CustomWidgetContainerDirective, [{
61
+ type: Directive,
62
+ args: [{
63
+ selector: '[wmWidgetContainer]',
64
+ providers: [
65
+ provideAsWidgetRef(CustomWidgetContainerDirective)
66
+ ],
67
+ exportAs: 'wmWidgetContainer'
68
+ }]
69
+ }], function () { return [{ type: i0.Injector }, { type: i0.ElementRef }, { type: undefined, decorators: [{
70
+ type: Attribute,
71
+ args: ['widgetname']
72
+ }] }]; }, null); })();
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXdpZGdldC1jb250YWluZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2FkdmFuY2VkL2N1c3RvbS9zcmMvY3VzdG9tLXdpZGdldC1jb250YWluZXIvY3VzdG9tLXdpZGdldC1jb250YWluZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQXFDLE1BQU0sZUFBZSxDQUFDO0FBRTlHLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxFQUFpQixTQUFTLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFnQixpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0SSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFMUQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0FBRTdDLE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUFDO0FBQ3pDLE1BQU0sYUFBYSxHQUFrQjtJQUNqQyxVQUFVLEVBQUUsa0JBQWtCO0lBQzlCLFNBQVMsRUFBRSxXQUFXO0NBQ3pCLENBQUM7QUFXRixNQUFNLE9BQU8sOEJBQStCLFNBQVEsaUJBQWlCO0lBTWpFLFlBQ0ksR0FBYSxFQUFFLEtBQWlCLEVBQ1AsVUFBa0I7UUFFM0MsSUFBSSxTQUFTLEdBQWEsSUFBSSxDQUFDO1FBQy9CLEtBQUssQ0FBQyxHQUFHLEVBQUUsYUFBYSxFQUFFLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDO1FBQzNDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFckQsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFakMsb0VBQW9FO1FBQ3BFLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLEVBQUU7WUFDakMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sUUFBUSxDQUFDLE1BQU0sRUFBRSxTQUFtQjtRQUN2QyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRTtZQUMvQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUMxQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQ25FO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQUssR0FBRyxFQUFFO1FBQzNCLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDNUMsK0NBQStDO1FBQy9DLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFnQixFQUFFLEVBQUU7WUFDcEQsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUU1QixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO2dCQUN0QixJQUFJLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQzthQUM1QjtpQkFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO2dCQUM1QixJQUFJLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQzthQUMzQjtpQkFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO2dCQUM1QixJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQzthQUNqQjtZQUVELGlDQUFpQztZQUNqQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsa0JBQWtCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV4QyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDOytGQXpEUSw4QkFBOEIsK0ZBUXhCLFlBQVk7b0VBUmxCLDhCQUE4QixnSEFMNUI7Z0JBQ1Asa0JBQWtCLENBQUMsOEJBQThCLENBQUM7YUFDckQ7O3VGQUdRLDhCQUE4QjtjQVAxQyxTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsU0FBUyxFQUFFO29CQUNQLGtCQUFrQixnQ0FBZ0M7aUJBQ3JEO2dCQUNELFFBQVEsRUFBRSxtQkFBbUI7YUFDaEM7O3NCQVNRLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0dHJpYnV0ZSwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3RvciwgT25Jbml0LCBPcHRpb25hbCwgU2VjdXJpdHlDb250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IG5vb3AgfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBJV2lkZ2V0Q29uZmlnLCBQUk9QX1RZUEUsIHByb3ZpZGVBc1dpZGdldFJlZiwgcmVnaXN0ZXIsIFNhbml0aXplUGlwZSwgU3R5bGFibGVDb21wb25lbnQsIHN0eWxlciB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuXG5pbXBvcnQgeyBjdXN0b21XaWRnZXRQcm9wcyB9IGZyb20gJy4vY3VzdG9tLXdpZGdldC5wcm9wcyc7XG5cbmNvbnN0IHJlZ2lzdGVyZWRQcm9wc1NldCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG5jb25zdCBERUZBVUxUX0NMUyA9ICdhcHAtaHRtbC1jb250YWluZXInO1xuY29uc3QgV0lER0VUX0NPTkZJRzogSVdpZGdldENvbmZpZyA9IHtcbiAgICB3aWRnZXRUeXBlOiAnd20tY3VzdG9tLXdpZGdldCcsXG4gICAgaG9zdENsYXNzOiBERUZBVUxUX0NMU1xufTtcblxuZGVjbGFyZSBjb25zdCBfO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t3bVdpZGdldENvbnRhaW5lcl0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoQ3VzdG9tV2lkZ2V0Q29udGFpbmVyRGlyZWN0aXZlKVxuICAgIF0sXG4gICAgZXhwb3J0QXM6ICd3bVdpZGdldENvbnRhaW5lcidcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tV2lkZ2V0Q29udGFpbmVyRGlyZWN0aXZlIGV4dGVuZHMgU3R5bGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHdpZGdldFR5cGU6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcHJvcHNSZWFkeTogRnVuY3Rpb247XG4gICAgd2lkZ2V0TmFtZTogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluajogSW5qZWN0b3IsIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBAQXR0cmlidXRlKCd3aWRnZXRuYW1lJykgd2lkZ2V0bmFtZTogc3RyaW5nLFxuICAgICkge1xuICAgICAgICBsZXQgcmVzb2x2ZUZuOiBGdW5jdGlvbiA9IG5vb3A7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgbmV3IFByb21pc2UocmVzID0+IHJlc29sdmVGbiA9IHJlcykpO1xuICAgICAgICB0aGlzLnByb3BzUmVhZHkgPSByZXNvbHZlRm47XG4gICAgICAgIHRoaXMud2lkZ2V0VHlwZSA9IFdJREdFVF9DT05GSUcud2lkZ2V0VHlwZTtcbiAgICAgICAgdGhpcy53aWRnZXROYW1lID0gd2lkZ2V0bmFtZTtcbiAgICAgICAgdGhpcy5uYW1lID0gZWxSZWYubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ25hbWUnKTtcblxuICAgICAgICBzdHlsZXIodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzKTtcblxuICAgICAgICAvLyBDYWxsIG9uIHByb3BlcnR5IGNoYW5nZSBvbiBuYW1lIHRvIHNldCBuYW1lIGF0dHJpYnV0ZSBvbiBlbGVtZW50LlxuICAgICAgICB0aGlzLnJlZ2lzdGVyUmVhZHlTdGF0ZUxpc3RlbmVyKCgpID0+IHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2UoJ25hbWUnLCB0aGlzLm5hbWUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0UHJvcHMoY29uZmlnLCByZXNvbHZlRm46IEZ1bmN0aW9uKSB7XG4gICAgICAgIGlmICghY29uZmlnIHx8ICFjb25maWcucHJvcGVydGllcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcmVnaXN0ZXJlZFByb3BzU2V0Lmhhcyh0aGlzLndpZGdldFR5cGUpKSB7XG4gICAgICAgICAgICByZWdpc3Rlcih0aGlzLndpZGdldFR5cGUsIHRoaXMucHJlcGFyZVByb3BzKGNvbmZpZy5wcm9wZXJ0aWVzKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByb3BzUmVhZHkocmVzb2x2ZUZuKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByZXBhcmVQcm9wcyhwcm9wcyA9IHt9KSB7XG4gICAgICAgIGNvbnN0IHByb3BzTWFwID0gbmV3IE1hcChjdXN0b21XaWRnZXRQcm9wcyk7XG4gICAgICAgIC8vIHByb3BzTWFwLnNldCgnd2lkZ2V0bmFtZScsIHRoaXMud2lkZ2V0TmFtZSk7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHByb3BzKS5mb3JFYWNoKChbaywgdl06IFtzdHJpbmcsIGFueV0pID0+IHtcbiAgICAgICAgICAgIGxldCB0eXBlID0gUFJPUF9UWVBFLlNUUklORztcblxuICAgICAgICAgICAgaWYgKHYudHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgdHlwZSA9IFBST1BfVFlQRS5CT09MRUFOO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2LnR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgdHlwZSA9IFBST1BfVFlQRS5OVU1CRVI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHYudHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICB0eXBlID0gdi50eXBlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBEbyBub3Qgc2V0IHRoZSAnYmluZDoqJyB2YWx1ZXNcbiAgICAgICAgICAgIHByb3BzTWFwLnNldChrLCB7IHR5cGUsIHZhbHVlOiBfLnN0YXJ0c1dpdGgodi52YWx1ZSwgJ2JpbmQ6JykgPyB1bmRlZmluZWQgOiB2LnZhbHVlIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICByZWdpc3RlcmVkUHJvcHNTZXQuYWRkKHRoaXMud2lkZ2V0VHlwZSk7XG5cbiAgICAgICAgcmV0dXJuIHByb3BzTWFwO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,9 @@
1
+ import { PROP_BOOLEAN, PROP_STRING } from '@wm/components/base';
2
+ export const customWidgetProps = new Map([
3
+ ['class', PROP_STRING],
4
+ ['hint', PROP_STRING],
5
+ ['name', PROP_STRING],
6
+ ['widgetname', PROP_STRING],
7
+ ['show', { value: true, ...PROP_BOOLEAN }]
8
+ ]);
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXdpZGdldC5wcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9hZHZhbmNlZC9jdXN0b20vc3JjL2N1c3RvbS13aWRnZXQtY29udGFpbmVyL2N1c3RvbS13aWRnZXQucHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVoRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FDMUIsSUFBSSxHQUFHLENBQ0g7SUFDSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUM7SUFDdEIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDO0lBQ3JCLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQztJQUNyQixDQUFDLFlBQVksRUFBRSxXQUFXLENBQUM7SUFDM0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsWUFBWSxFQUFFLENBQUM7Q0FDN0MsQ0FDSixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUFJPUF9CT09MRUFOLCBQUk9QX1NUUklORyB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuXG5leHBvcnQgY29uc3QgY3VzdG9tV2lkZ2V0UHJvcHMgPVxuICAgIG5ldyBNYXAoXG4gICAgICAgIFtcbiAgICAgICAgICAgIFsnY2xhc3MnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBbJ2hpbnQnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBbJ25hbWUnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBbJ3dpZGdldG5hbWUnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBbJ3Nob3cnLCB7IHZhbHVlOiB0cnVlLCAuLi5QUk9QX0JPT0xFQU4gfV1cbiAgICAgICAgXVxuICAgIClcbiJdfQ==
@@ -0,0 +1,70 @@
1
+ import { Attribute, Directive, Inject, Self, Input } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { $watch } from '@wm/core';
4
+ import { WidgetRef } from '@wm/components/base';
5
+ import * as i0 from "@angular/core";
6
+ export class CustomWidgetPropHandlerDirective {
7
+ constructor(widgetRef) {
8
+ this.widgetRef = widgetRef;
9
+ this.widgetRef.props = {};
10
+ this.widgetRef.pageParams = this.widgetRef.props;
11
+ this.widgetRef.params$ = new Subject();
12
+ }
13
+ registerParams(name, value, bindExpr, type) {
14
+ this.widgetRef.props[name] = value;
15
+ if (!value && bindExpr) {
16
+ this.widgetRef.registerDestroyListener(
17
+ //[Todo-CSP]: expr fn should be generated be default
18
+ $watch(bindExpr, this.widgetRef.getViewParent(), _.get(this.widgetRef, 'context'), nv => {
19
+ this.widgetRef.props[name] = nv;
20
+ // notify the partial container of the param changes
21
+ this.widgetRef.params$.next();
22
+ }));
23
+ }
24
+ else {
25
+ this.widgetRef.params$.next();
26
+ }
27
+ }
28
+ static { this.ɵfac = function CustomWidgetPropHandlerDirective_Factory(t) { return new (t || CustomWidgetPropHandlerDirective)(i0.ɵɵdirectiveInject(WidgetRef, 2)); }; }
29
+ static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: CustomWidgetPropHandlerDirective, selectors: [["", "customWidgetContainer", ""]] }); }
30
+ }
31
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CustomWidgetPropHandlerDirective, [{
32
+ type: Directive,
33
+ args: [{
34
+ selector: '[customWidgetContainer]',
35
+ }]
36
+ }], function () { return [{ type: undefined, decorators: [{
37
+ type: Self
38
+ }, {
39
+ type: Inject,
40
+ args: [WidgetRef]
41
+ }] }]; }, null); })();
42
+ export class CustomWidgetPropDirective {
43
+ constructor(bindValue, type, customWidgetPropsProvider) {
44
+ this.bindValue = bindValue;
45
+ this.type = type;
46
+ this.customWidgetPropsProvider = customWidgetPropsProvider;
47
+ }
48
+ ngOnInit() {
49
+ this.customWidgetPropsProvider.registerParams(this.name, this.value, this.bindValue, this.type);
50
+ }
51
+ static { this.ɵfac = function CustomWidgetPropDirective_Factory(t) { return new (t || CustomWidgetPropDirective)(i0.ɵɵinjectAttribute('value.bind'), i0.ɵɵinjectAttribute('type'), i0.ɵɵdirectiveInject(CustomWidgetPropHandlerDirective)); }; }
52
+ static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: CustomWidgetPropDirective, selectors: [["", "wmProp", ""]], inputs: { name: "name", value: "value" } }); }
53
+ }
54
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CustomWidgetPropDirective, [{
55
+ type: Directive,
56
+ args: [{
57
+ selector: '[wmProp]',
58
+ }]
59
+ }], function () { return [{ type: undefined, decorators: [{
60
+ type: Attribute,
61
+ args: ['value.bind']
62
+ }] }, { type: undefined, decorators: [{
63
+ type: Attribute,
64
+ args: ['type']
65
+ }] }, { type: CustomWidgetPropHandlerDirective }]; }, { name: [{
66
+ type: Input
67
+ }], value: [{
68
+ type: Input
69
+ }] }); })();
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXdpZGdldC1jb250YWluZXItcHJvcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYWR2YW5jZWQvY3VzdG9tL3NyYy9jdXN0b20td2lkZ2V0LWNvbnRhaW5lci1wcm9wL2N1c3RvbS13aWRnZXQtY29udGFpbmVyLXByb3AuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBUWhELE1BQU0sT0FBTyxnQ0FBZ0M7SUFDekMsWUFBZ0QsU0FBUztRQUFULGNBQVMsR0FBVCxTQUFTLENBQUE7UUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1FBQ2pELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLFFBQWdCLEVBQUUsSUFBWTtRQUN0RSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssSUFBSSxRQUFRLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUI7WUFDbEMsb0RBQW9EO1lBQ3BELE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUU7Z0JBQ3BGLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFFaEMsb0RBQW9EO2dCQUNwRCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQyxDQUFDLENBQUMsQ0FDTCxDQUFDO1NBQ0w7YUFBTTtZQUNILElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2pDO0lBRUwsQ0FBQztpR0F2QlEsZ0NBQWdDLHVCQUNaLFNBQVM7b0VBRDdCLGdDQUFnQzs7dUZBQWhDLGdDQUFnQztjQUg1QyxTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjthQUN0Qzs7c0JBRWlCLElBQUk7O3NCQUFJLE1BQU07dUJBQUMsU0FBUzs7QUE0QjFDLE1BQU0sT0FBTyx5QkFBeUI7SUFLbEMsWUFDb0MsU0FBUyxFQUNmLElBQUksRUFDdEIseUJBQTJEO1FBRm5DLGNBQVMsR0FBVCxTQUFTLENBQUE7UUFDZixTQUFJLEdBQUosSUFBSSxDQUFBO1FBQ3RCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBa0M7SUFFdkUsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMseUJBQXlCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRyxDQUFDOzBGQWRRLHlCQUF5Qix1QkFNbkIsWUFBWSx3QkFDWixNQUFNO29FQVBaLHlCQUF5Qjs7dUZBQXpCLHlCQUF5QjtjQUhyQyxTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLFVBQVU7YUFDdkI7O3NCQU9RLFNBQVM7dUJBQUMsWUFBWTs7c0JBQ3RCLFNBQVM7dUJBQUMsTUFBTTtvRUFMWixJQUFJO2tCQUFaLEtBQUs7WUFDRyxLQUFLO2tCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdHRyaWJ1dGUsIERpcmVjdGl2ZSwgSW5qZWN0LCBTZWxmLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgJHdhdGNoIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgV2lkZ2V0UmVmIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cblxuZGVjbGFyZSBjb25zdCBfO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tjdXN0b21XaWRnZXRDb250YWluZXJdJyxcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tV2lkZ2V0UHJvcEhhbmRsZXJEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yIChAU2VsZigpIEBJbmplY3QoV2lkZ2V0UmVmKSBwcml2YXRlIHdpZGdldFJlZikge1xuICAgICAgICB0aGlzLndpZGdldFJlZi5wcm9wcyA9IHt9O1xuICAgICAgICB0aGlzLndpZGdldFJlZi5wYWdlUGFyYW1zID0gdGhpcy53aWRnZXRSZWYucHJvcHM7XG4gICAgICAgIHRoaXMud2lkZ2V0UmVmLnBhcmFtcyQgPSBuZXcgU3ViamVjdCgpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyUGFyYW1zKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZywgYmluZEV4cHI6IHN0cmluZywgdHlwZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMud2lkZ2V0UmVmLnByb3BzW25hbWVdID0gdmFsdWU7XG4gICAgICAgIGlmICghdmFsdWUgJiYgYmluZEV4cHIpIHtcbiAgICAgICAgICAgIHRoaXMud2lkZ2V0UmVmLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKFxuICAgICAgICAgICAgICAgIC8vW1RvZG8tQ1NQXTogZXhwciBmbiBzaG91bGQgYmUgZ2VuZXJhdGVkIGJlIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAkd2F0Y2goYmluZEV4cHIsIHRoaXMud2lkZ2V0UmVmLmdldFZpZXdQYXJlbnQoKSwgXy5nZXQodGhpcy53aWRnZXRSZWYsICdjb250ZXh0JyksIG52ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53aWRnZXRSZWYucHJvcHNbbmFtZV0gPSBudjtcblxuICAgICAgICAgICAgICAgICAgICAvLyBub3RpZnkgdGhlIHBhcnRpYWwgY29udGFpbmVyIG9mIHRoZSBwYXJhbSBjaGFuZ2VzXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2lkZ2V0UmVmLnBhcmFtcyQubmV4dCgpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy53aWRnZXRSZWYucGFyYW1zJC5uZXh0KCk7XG4gICAgICAgIH1cblxuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbd21Qcm9wXScsXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbVdpZGdldFByb3BEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHZhbHVlOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEF0dHJpYnV0ZSgndmFsdWUuYmluZCcpIHB1YmxpYyBiaW5kVmFsdWUsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ3R5cGUnKSBwdWJsaWMgdHlwZSxcbiAgICAgICAgcHJpdmF0ZSBjdXN0b21XaWRnZXRQcm9wc1Byb3ZpZGVyOiBDdXN0b21XaWRnZXRQcm9wSGFuZGxlckRpcmVjdGl2ZVxuICAgICkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmN1c3RvbVdpZGdldFByb3BzUHJvdmlkZXIucmVnaXN0ZXJQYXJhbXModGhpcy5uYW1lLCB0aGlzLnZhbHVlLCB0aGlzLmJpbmRWYWx1ZSwgdGhpcy50eXBlKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,8 @@
1
+ import { PROP_STRING, register } from '@wm/components/base';
2
+ export const registerProps = () => {
3
+ register('wm-custom-widget-container', new Map([
4
+ ['name', PROP_STRING],
5
+ ['class', PROP_STRING]
6
+ ]));
7
+ };
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXdpZGdldC1wcm9wLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2FkdmFuY2VkL2N1c3RvbS9zcmMvY3VzdG9tLXdpZGdldC1wcm9wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxXQUFXLEVBQUUsUUFBUSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFMUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEdBQUcsRUFBRTtJQUM5QixRQUFRLENBQ0osNEJBQTRCLEVBQzVCLElBQUksR0FBRyxDQUNIO1FBQ0ksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDO1FBQ3JCLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQztLQUN6QixDQUNKLENBQ0osQ0FBQztBQUNOLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UFJPUF9TVFJJTkcsIHJlZ2lzdGVyfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyUHJvcHMgPSAoKSA9PiB7XG4gICAgcmVnaXN0ZXIoXG4gICAgICAgICd3bS1jdXN0b20td2lkZ2V0LWNvbnRhaW5lcicsXG4gICAgICAgIG5ldyBNYXAoXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgWyduYW1lJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnY2xhc3MnLCBQUk9QX1NUUklOR11cbiAgICAgICAgICAgIF1cbiAgICAgICAgKVxuICAgICk7XG59O1xuIl19
@@ -0,0 +1,68 @@
1
+ import { Directive, Injector } from '@angular/core';
2
+ import { Viewport } from '@wm/core';
3
+ import { registerProps } from './custom-widget-prop';
4
+ import { StylableComponent, provideAsWidgetRef, getWidgetPropsByType } from '@wm/components/base';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@wm/core";
7
+ const DEFAULT_CLS = 'app-custom-widget-container clearfix';
8
+ const WIDGET_CONFIG = { widgetType: 'wm-custom-widget-container', hostClass: DEFAULT_CLS };
9
+ export class CustomWidgetDirective extends StylableComponent {
10
+ static { this.initializeProps = registerProps(); }
11
+ constructor(inj, viewport) {
12
+ super(inj, WIDGET_CONFIG);
13
+ this.viewport = viewport;
14
+ this.registerDestroyListener(this.viewport.subscribe("resize" /* ViewportEvent.RESIZE */, data => this.callback('resize', data)));
15
+ this.registerDestroyListener(this.viewport.subscribe("orientationchange" /* ViewportEvent.ORIENTATION_CHANGE */, data => this.callback('orientationchange', data)));
16
+ }
17
+ ngAfterContentInit() {
18
+ let customWidget = this.nativeElement.closest('[customwidgetcontainer]'), inheritedProps = {}, customWidgetProps = Array.from(getWidgetPropsByType("wm-custom-widget-container").keys());
19
+ for (let i = 0; i < customWidget.attributes.length; i++) {
20
+ let attr = customWidget.attributes.item(i);
21
+ if (attr.value && attr.value !== '' && !customWidgetProps.includes(attr.name))
22
+ inheritedProps[attr.name] = attr.value;
23
+ }
24
+ this.processChildren(this.nativeElement.children, inheritedProps);
25
+ }
26
+ processChildren(children, inheritedProps) {
27
+ Array.from(children).forEach((child) => {
28
+ if (!child.hasAttribute('base-widget'))
29
+ this.processChildren(child.children, inheritedProps);
30
+ else {
31
+ for (const [key, value] of Object.entries(inheritedProps)) {
32
+ if (key.includes(".event"))
33
+ this.processChildAttr(key, value, { widget: child.widget, nativeElement: child });
34
+ else
35
+ child.widget[key] = value;
36
+ }
37
+ }
38
+ });
39
+ }
40
+ callback(eventName, locals) {
41
+ locals = _.assign({ widget: this }, locals);
42
+ this.invokeEventCallback(eventName, locals);
43
+ }
44
+ ngOnAttach() {
45
+ this.callback('attach');
46
+ }
47
+ ngOnDetach() {
48
+ this.callback('detach');
49
+ }
50
+ ngOnDestroy() {
51
+ this.callback('destroy');
52
+ super.ngOnDestroy();
53
+ }
54
+ static { this.ɵfac = function CustomWidgetDirective_Factory(t) { return new (t || CustomWidgetDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.Viewport)); }; }
55
+ static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: CustomWidgetDirective, selectors: [["", "wmCustomWidget", ""]], features: [i0.ɵɵProvidersFeature([
56
+ provideAsWidgetRef(CustomWidgetDirective)
57
+ ]), i0.ɵɵInheritDefinitionFeature] }); }
58
+ }
59
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CustomWidgetDirective, [{
60
+ type: Directive,
61
+ args: [{
62
+ selector: '[wmCustomWidget]',
63
+ providers: [
64
+ provideAsWidgetRef(CustomWidgetDirective)
65
+ ]
66
+ }]
67
+ }], function () { return [{ type: i0.Injector }, { type: i1.Viewport }]; }, null); })();
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXdpZGdldC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYWR2YW5jZWQvY3VzdG9tL3NyYy9jdXN0b20td2lkZ2V0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBYyxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBRXZHLE9BQU8sRUFBQyxRQUFRLEVBQWdCLE1BQU0sVUFBVSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBRWxHLE1BQU0sV0FBVyxHQUFHLHNDQUFzQyxDQUFDO0FBQzNELE1BQU0sYUFBYSxHQUFHLEVBQUMsVUFBVSxFQUFFLDRCQUE0QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUMsQ0FBQztBQVN6RixNQUFNLE9BQU8scUJBQXNCLFNBQVEsaUJBQWlCO2FBQ2pELG9CQUFlLEdBQUcsYUFBYSxFQUFFLENBQUM7SUFFekMsWUFBWSxHQUFhLEVBQVUsUUFBa0I7UUFDakQsS0FBSyxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztRQURLLGFBQVEsR0FBUixRQUFRLENBQVU7UUFFakQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxzQ0FBdUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkgsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyw2REFBbUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFD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dCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3RvciwgT25EZXN0cm95LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1ZpZXdwb3J0LCBWaWV3cG9ydEV2ZW50fSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi9jdXN0b20td2lkZ2V0LXByb3AnO1xuaW1wb3J0IHsgU3R5bGFibGVDb21wb25lbnQsIHByb3ZpZGVBc1dpZGdldFJlZiwgZ2V0V2lkZ2V0UHJvcHNCeVR5cGUgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLWN1c3RvbS13aWRnZXQtY29udGFpbmVyIGNsZWFyZml4JztcbmNvbnN0IFdJREdFVF9DT05GSUcgPSB7d2lkZ2V0VHlwZTogJ3dtLWN1c3RvbS13aWRnZXQtY29udGFpbmVyJywgaG9zdENsYXNzOiBERUZBVUxUX0NMU307XG5kZWNsYXJlIGNvbnN0IF87XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3dtQ3VzdG9tV2lkZ2V0XScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihDdXN0b21XaWRnZXREaXJlY3RpdmUpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21XaWRnZXREaXJlY3RpdmUgZXh0ZW5kcyBTdHlsYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIHByaXZhdGUgdmlld3BvcnQ6IFZpZXdwb3J0KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRyk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIodGhpcy52aWV3cG9ydC5zdWJzY3JpYmUoVmlld3BvcnRFdmVudC5SRVNJWkUsIGRhdGEgPT4gdGhpcy5jYWxsYmFjaygncmVzaXplJywgZGF0YSkpKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcih0aGlzLnZpZXdwb3J0LnN1YnNjcmliZShWaWV3cG9ydEV2ZW50Lk9SSUVOVEFUSU9OX0NIQU5HRSwgZGF0YSA9PiB0aGlzLmNhbGxiYWNrKCdvcmllbnRhdGlvbmNoYW5nZScsIGRhdGEpKSk7XG4gICAgfVxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgbGV0IGN1c3RvbVdpZGdldCAgICAgICAgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnW2N1c3RvbXdpZGdldGNvbnRhaW5lcl0nKSxcbiAgICAgICAgICAgIGluaGVyaXRlZFByb3BzICAgICAgPSB7fSxcbiAgICAgICAgICAgIGN1c3RvbVdpZGdldFByb3BzICAgPSBBcnJheS5mcm9tKGdldFdpZGdldFByb3BzQnlUeXBlKFwid20tY3VzdG9tLXdpZGdldC1jb250YWluZXJcIikua2V5cygpKTtcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGN1c3RvbVdpZGdldC5hdHRyaWJ1dGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgYXR0ciA9IGN1c3RvbVdpZGdldC5hdHRyaWJ1dGVzLml0ZW0oaSk7XG4gICAgICAgICAgICBpZihhdHRyLnZhbHVlICYmIGF0dHIudmFsdWUgIT09ICcnICYmICFjdXN0b21XaWRnZXRQcm9wcy5pbmNsdWRlcyhhdHRyLm5hbWUpKVxuICAgICAgICAgICAgICAgIGluaGVyaXRlZFByb3BzW2F0dHIubmFtZV0gPSBhdHRyLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJvY2Vzc0NoaWxkcmVuKHRoaXMubmF0aXZlRWxlbWVudC5jaGlsZHJlbiwgaW5oZXJpdGVkUHJvcHMpO1xuICAgIH1cblxuICAgIHByb2Nlc3NDaGlsZHJlbihjaGlsZHJlbjogYW55LCBpbmhlcml0ZWRQcm9wczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSkge1xuICAgICAgICBBcnJheS5mcm9tKGNoaWxkcmVuKS5mb3JFYWNoKChjaGlsZDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZighY2hpbGQuaGFzQXR0cmlidXRlKCdiYXNlLXdpZGdldCcpKVxuICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0NoaWxkcmVuKGNoaWxkLmNoaWxkcmVuLCBpbmhlcml0ZWRQcm9wcyk7XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhpbmhlcml0ZWRQcm9wcykpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYoa2V5LmluY2x1ZGVzKFwiLmV2ZW50XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzQ2hpbGRBdHRyKGtleSwgdmFsdWUsIHt3aWRnZXQ6IGNoaWxkLndpZGdldCwgbmF0aXZlRWxlbWVudDogY2hpbGR9KTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQud2lkZ2V0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxsYmFjayhldmVudE5hbWUsIGxvY2Fscz86IG9iamVjdCkge1xuICAgICAgICBsb2NhbHMgPSBfLmFzc2lnbih7IHdpZGdldDogdGhpcyB9LCBsb2NhbHMpO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soZXZlbnROYW1lLCBsb2NhbHMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQXR0YWNoKCkge1xuICAgICAgICB0aGlzLmNhbGxiYWNrKCdhdHRhY2gnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRldGFjaCgpIHtcbiAgICAgICAgdGhpcy5jYWxsYmFjaygnZGV0YWNoJyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmNhbGxiYWNrKCdkZXN0cm95Jyk7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxuXG59XG4iXX0=