@acorex/components 4.2.67 → 4.2.72
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/esm2020/lib/checkbox/checkbox.component.mjs +3 -3
- package/esm2020/lib/color-picker/color-picker.component.mjs +1 -1
- package/esm2020/lib/data-filter/columns/filter-column-date.component.mjs +1 -1
- package/esm2020/lib/data-filter/columns/filter-column-selection.component.mjs +1 -1
- package/esm2020/lib/date-picker/date-picker.component.mjs +3 -6
- package/esm2020/lib/drawer/drawer.component.mjs +1 -2
- package/esm2020/lib/dropdown/dropdown.component.mjs +10 -11
- package/esm2020/lib/form-group/form-group.component.mjs +4 -3
- package/esm2020/lib/menu/menu.component.mjs +3 -3
- package/esm2020/lib/property-editor/editors/column-editor/column.editor.mjs +1 -1
- package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +1 -1
- package/esm2020/lib/property-editor/editors/number-editor/number.editor.mjs +28 -25
- package/esm2020/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +72 -0
- package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +4 -4
- package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +5 -5
- package/esm2020/lib/property-editor/editors/selection-editor/selection-editor.mjs +26 -29
- package/esm2020/lib/property-editor/editors/text-editor/text.editor.mjs +5 -3
- package/esm2020/lib/property-editor/property-editor-renderer.directive.mjs +11 -9
- package/esm2020/lib/property-editor/property-editor.class.mjs +1 -1
- package/esm2020/lib/property-editor/property-editor.module.mjs +17 -6
- package/esm2020/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +1 -1
- package/esm2020/lib/query-builder/query-builder-rule.component.mjs +1 -1
- package/esm2020/lib/search-bar/search-bar.component.mjs +251 -0
- package/esm2020/lib/search-bar/search-bar.module.mjs +28 -0
- package/esm2020/lib/selectbox/selectbox.component.mjs +9 -3
- package/esm2020/lib/selectbox/selectbox2.component.mjs +1 -1
- package/esm2020/lib/selection-list/selection-list.component.mjs +10 -3
- package/esm2020/public-api.mjs +3 -1
- package/fesm2015/acorex-components.mjs +5108 -4759
- package/fesm2015/acorex-components.mjs.map +1 -1
- package/fesm2020/acorex-components.mjs +5085 -4745
- package/fesm2020/acorex-components.mjs.map +1 -1
- package/lib/dropdown/dropdown.component.d.ts +2 -2
- package/lib/property-editor/editors/number-editor/number.editor.d.ts +1 -0
- package/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.d.ts +29 -0
- package/lib/property-editor/editors/selectbox-editor/selectbox.module.d.ts +7 -6
- package/lib/property-editor/editors/selection-editor/selection-editor.d.ts +1 -0
- package/lib/property-editor/editors/text-editor/text.editor.d.ts +3 -0
- package/lib/property-editor/property-editor.class.d.ts +2 -0
- package/lib/search-bar/search-bar.component.d.ts +53 -0
- package/lib/search-bar/search-bar.module.d.ts +17 -0
- package/lib/selectbox/selectbox.component.d.ts +3 -1
- package/lib/selection-list/selection-list.component.d.ts +3 -1
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -14,6 +14,7 @@ import { AXNumberBoxPropertyEditorComponent } from './editors/number-editor/numb
|
|
|
14
14
|
import { AXNumberBoxPropertyEditorModule } from './editors/number-editor/number.module';
|
|
15
15
|
import { AXRangePropertyEditorComponent } from './editors/range-editor/range.editor';
|
|
16
16
|
import { AXRangePropertyEditorModule } from './editors/range-editor/range.module';
|
|
17
|
+
import { AXSearchBarSelectBoxEditorComponent } from './editors/searchbar-selectbox-editor/searchbar-selectbox-editor';
|
|
17
18
|
import { AXSelectBoxPropertyEditorComponent } from './editors/selectbox-editor/selectbox.editor';
|
|
18
19
|
import { AXSelectBoxPropertyEditorModule } from './editors/selectbox-editor/selectbox.module';
|
|
19
20
|
import { AXSelectionListPropertyEditorComponent } from './editors/selection-editor/selection-editor';
|
|
@@ -85,6 +86,10 @@ AXProppertyEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
|
|
|
85
86
|
component: AXSelectBoxPropertyEditorComponent,
|
|
86
87
|
path: 'ax/editors/select'
|
|
87
88
|
},
|
|
89
|
+
{
|
|
90
|
+
component: AXSearchBarSelectBoxEditorComponent,
|
|
91
|
+
path: 'ax/editors/selectBox'
|
|
92
|
+
},
|
|
88
93
|
{
|
|
89
94
|
component: AXNumberBoxPropertyEditorComponent,
|
|
90
95
|
path: 'ax/editors/number'
|
|
@@ -108,14 +113,15 @@ AXProppertyEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
|
|
|
108
113
|
{
|
|
109
114
|
component: ColumnPropertyEditorComponent,
|
|
110
115
|
path: 'ax/editors/column'
|
|
111
|
-
},
|
|
116
|
+
},
|
|
117
|
+
{
|
|
112
118
|
component: AXDatePropertyEditorComponent,
|
|
113
119
|
path: 'ax/editors/date'
|
|
114
120
|
},
|
|
115
121
|
{
|
|
116
122
|
component: AXTimePropertyEditorComponent,
|
|
117
123
|
path: 'ax/editors/time'
|
|
118
|
-
}
|
|
124
|
+
}
|
|
119
125
|
])
|
|
120
126
|
]] });
|
|
121
127
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXProppertyEditorModule, decorators: [{
|
|
@@ -144,6 +150,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
144
150
|
component: AXSelectBoxPropertyEditorComponent,
|
|
145
151
|
path: 'ax/editors/select'
|
|
146
152
|
},
|
|
153
|
+
{
|
|
154
|
+
component: AXSearchBarSelectBoxEditorComponent,
|
|
155
|
+
path: 'ax/editors/selectBox'
|
|
156
|
+
},
|
|
147
157
|
{
|
|
148
158
|
component: AXNumberBoxPropertyEditorComponent,
|
|
149
159
|
path: 'ax/editors/number'
|
|
@@ -167,19 +177,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
167
177
|
{
|
|
168
178
|
component: ColumnPropertyEditorComponent,
|
|
169
179
|
path: 'ax/editors/column'
|
|
170
|
-
},
|
|
180
|
+
},
|
|
181
|
+
{
|
|
171
182
|
component: AXDatePropertyEditorComponent,
|
|
172
183
|
path: 'ax/editors/date'
|
|
173
184
|
},
|
|
174
185
|
{
|
|
175
186
|
component: AXTimePropertyEditorComponent,
|
|
176
187
|
path: 'ax/editors/time'
|
|
177
|
-
}
|
|
188
|
+
}
|
|
178
189
|
])
|
|
179
190
|
],
|
|
180
191
|
exports: [AXPropertyEditorRendererDirective],
|
|
181
192
|
declarations: [AXPropertyEditorRendererDirective],
|
|
182
|
-
providers: []
|
|
193
|
+
providers: []
|
|
183
194
|
}]
|
|
184
195
|
}] });
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZWRpdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvcHJvcGVydHktZWRpdG9yL3Byb3BlcnR5LWVkaXRvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDckYsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDeEgsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDckgsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0YsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scUNB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RSw2QkFBNkI7Z0NBQ3hDLElBQUksRUFBRSxpQkFBaUI7NkJBQzFCOzRCQUNEO2dDQUNJLFNBQVMsRUFBRSw2QkFBNkI7Z0NBQ3hDLElBQUksRUFBRSxpQkFBaUI7NkJBQzFCO3lCQUNKLENBQUM7cUJBQ0w7b0JBQ0QsT0FBTyxFQUFFLENBQUMsaUNBQWlDLENBQUM7b0JBQzVDLFlBQVksRUFBRSxDQUFDLGlDQUFpQyxDQUFDO29CQUNqRCxTQUFTLEVBQUUsRUFBRTtpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBWENoZWNrQm94UHJvcGVydHlFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2VkaXRvcnMvY2hlY2stZWRpdG9yL2NoZWNrLWVkaXRvcic7XHJcbmltcG9ydCB7IEFYQ2hlY2tQcm9wZXJ0eUVkaXRvck1vZHVsZSB9IGZyb20gJy4vZWRpdG9ycy9jaGVjay1lZGl0b3IvY2hlY2subW9kdWxlJztcclxuaW1wb3J0IHsgQVhDb2xvclByb3BlcnR5RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9lZGl0b3JzL2NvbG9yLWVkaXRvci9jb2xvci5lZGl0b3InO1xyXG5pbXBvcnQgeyBBWENvbG9yUHJvcGVydHlFZGl0b3JNb2R1bGUgfSBmcm9tICcuL2VkaXRvcnMvY29sb3ItZWRpdG9yL2NvbG9yLm1vZHVsZSc7XHJcbmltcG9ydCB7IENvbHVtblByb3BlcnR5RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9lZGl0b3JzL2NvbHVtbi1lZGl0b3IvY29sdW1uLmVkaXRvcic7XHJcbmltcG9ydCB7IEFYQ29sdW1uUHJvcGVydHlFZGl0b3JNb2R1bGUgfSBmcm9tICcuL2VkaXRvcnMvY29sdW1uLWVkaXRvci9jb2x1bW4ubW9kdWxlJztcclxuaW1wb3J0IHsgQVhDb25kaXRpb25hbENvbG9yUHJvcGVydHlFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2VkaXRvcnMvY29uZGl0aW9uYWwtY29sb3ItZWRpdG9yL2NvbmRpdGlvbmFsLWNvbG9yLmVkaXRvcic7XHJcbmltcG9ydCB7IEFYQ29uZGl0aW9uYWxDb2xvclByb3BlcnR5RWRpdG9yTW9kdWxlIH0gZnJvbSAnLi9lZGl0b3JzL2NvbmRpdGlvbmFsLWNvbG9yLWVkaXRvci9jb25kaXRpb25hbC1jb2xvci5tb2R1bGUnO1xyXG5pbXBvcnQgeyBBWERhdGVQcm9wZXJ0eUVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vZWRpdG9ycy9kYXRlLWVkaXRvci9kYXRlLmVkaXRvcic7XHJcbmltcG9ydCB7IEFYRGF0ZVByb3BlcnR5RWRpdG9yTW9kdWxlIH0gZnJvbSAnLi9lZGl0b3JzL2RhdGUtZWRpdG9yL2RhdGUubW9kdWxlJztcclxuaW1wb3J0IHsgQVhOdW1iZXJCb3hQcm9wZXJ0eUVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vZWRpdG9ycy9udW1iZXItZWRpdG9yL251bWJlci5lZGl0b3InO1xyXG5pbXBvcnQgeyBBWE51bWJlckJveFByb3BlcnR5RWRpdG9yTW9kdWxlIH0gZnJvbSAnLi9lZGl0b3JzL251bWJlci1lZGl0b3IvbnVtYmVyLm1vZHVsZSc7XHJcbmltcG9ydCB7IEFYUmFuZ2VQcm9wZXJ0eUVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vZWRpdG9ycy9yYW5nZS1lZGl0b3IvcmFuZ2UuZWRpdG9yJztcclxuaW1wb3J0IHsgQVhSYW5nZVByb3BlcnR5RWRpdG9yTW9kdWxlIH0gZnJvbSAnLi9lZGl0b3JzL3JhbmdlLWVkaXRvci9yYW5nZS5tb2R1bGUnO1xyXG5pbXBvcnQgeyBBWFNlbGVjdEJveFByb3BlcnR5RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9lZGl0b3JzL3NlbGVjdGJveC1lZGl0b3Ivc2VsZWN0Ym94LmVkaXRvcic7XHJcbmltcG9ydCB7IEFYU2VsZWN0Qm94UHJvcGVydHlFZGl0b3JNb2R1bGUgfSBmcm9tICcuL2VkaXRvcnMvc2VsZWN0Ym94LWVkaXRvci9zZWxlY3Rib3gubW9kdWxlJztcclxuaW1wb3J0IHsgQVhTZWxlY3Rpb25MaXN0UHJvcGVydHlFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2VkaXRvcnMvc2VsZWN0aW9uLWVkaXRvci9zZWxlY3Rpb24tZWRpdG9yJztcclxuaW1wb3J0IHsgQVhTZWxlY3Rpb25Qcm9wZXJ0eUVkaXRvck1vZHVsZSB9IGZyb20gJy4vZWRpdG9ycy9zZWxlY3Rpb24tZWRpdG9yL3NlbGVjdGlvbi5tb2R1bGUnO1xyXG5pbXBvcnQgeyBBWFN3aXRjaFByb3BlcnR5RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9lZGl0b3JzL3N3aXRjaC1lZGl0b3IvbnVtYmVyLmVkaXRvcic7XHJcbmltcG9ydCB7IEFYU3dpdGNoUHJvcGVydHlFZGl0b3JNb2R1bGUgfSBmcm9tICcuL2VkaXRvcnMvc3dpdGNoLWVkaXRvci9udW1iZXIubW9kdWxlJztcclxuaW1wb3J0IHsgQVhUZXh0UHJvcGVydHlFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2VkaXRvcnMvdGV4dC1lZGl0b3IvdGV4dC5lZGl0b3InO1xyXG5pbXBvcnQgeyBBWFRleHRQcm9wZXJ0eUVkaXRvck1vZHVsZSB9IGZyb20gJy4vZWRpdG9ycy90ZXh0LWVkaXRvci90ZXh0Lm1vZHVsZSc7XHJcbmltcG9ydCB7IEFYVGV4dGFyZWFQcm9wZXJ0eUVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vZWRpdG9ycy90ZXh0YXJlYS1lZGl0b3IvdGV4dGFyZWEuZWRpdG9yJztcclxuaW1wb3J0IHsgQVhUZXh0YXJlYVByb3BlcnR5RWRpdG9yTW9kdWxlIH0gZnJvbSAnLi9lZGl0b3JzL3RleHRhcmVhLWVkaXRvci90ZXh0YXJlYS5tb2R1bGUnO1xyXG5pbXBvcnQgeyBBWFRpbWVQcm9wZXJ0eUVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vZWRpdG9ycy90aW1lLWVkaXRvci90aW1lLmVkaXRvcic7XHJcbmltcG9ydCB7IEFYVGltZVByb3BlcnR5RWRpdG9yTW9kdWxlIH0gZnJvbSAnLi9lZGl0b3JzL3RpbWUtZWRpdG9yL3RpbWUubW9kdWxlJztcclxuaW1wb3J0IHsgQVhQcm9wZXJ0eUVkaXRvclJlbmRlcmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9wcm9wZXJ0eS1lZGl0b3ItcmVuZGVyZXIuZGlyZWN0aXZlJztcclxuXHJcblxyXG5jb25zdCBXRElHRVRfTU9EVUxFUyA9IFtcclxuICAgIEFYTnVtYmVyQm94UHJvcGVydHlFZGl0b3JNb2R1bGUsXHJcbiAgICBBWFRleHRQcm9wZXJ0eUVkaXRvck1vZHVsZSxcclxuICAgIEFYU2VsZWN0Qm94UHJvcGVydHlFZGl0b3JNb2R1bGUsXHJcbiAgICBBWFJhbmdlUHJvcGVydHlFZGl0b3JNb2R1bGUsXHJcbiAgICBBWENvbG9yUHJvcGVydHlFZGl0b3JNb2R1bGUsXHJcbiAgICBBWENvbmRpdGlvbmFsQ29sb3JQcm9wZXJ0eUVkaXRvck1vZHVsZSxcclxuICAgIEFYQ29sdW1uUHJvcGVydHlFZGl0b3JNb2R1bGUsXHJcbiAgICBBWFN3aXRjaFByb3BlcnR5RWRpdG9yTW9kdWxlLFxyXG4gICAgQVhEYXRlUHJvcGVydHlFZGl0b3JNb2R1bGUsXHJcbiAgICBBWFRpbWVQcm9wZXJ0eUVkaXRvck1vZHVsZSxcclxuICAgIEFYVGltZVByb3BlcnR5RWRpdG9yTW9kdWxlLFxyXG4gICAgQVhUZXh0YXJlYVByb3BlcnR5RWRpdG9yTW9kdWxlLFxyXG4gICAgQVhDaGVja1Byb3BlcnR5RWRpdG9yTW9kdWxlLFxyXG4gICAgQVhTZWxlY3Rpb25Qcm9wZXJ0eUVkaXRvck1vZHVsZVxyXG5cclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgV0RJR0VUX01PRFVMRVMsXHJcbiAgICAgICAgUm91dGVyTW9kdWxlLmZvckNoaWxkKFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcGF0aDogJ2F4L2VkaXRvcnMvc2VsZWN0aW9uJyxcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogQVhTZWxlY3Rpb25MaXN0UHJvcGVydHlFZGl0b3JDb21wb25lbnRcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBBWENoZWNrQm94UHJvcGVydHlFZGl0b3JDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICBwYXRoOiAnYXgvZWRpdG9ycy9jaGVjaydcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBBWFRleHRQcm9wZXJ0eUVkaXRvckNvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIHBhdGg6ICdheC9lZGl0b3JzL3RleHQnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogQVhUZXh0YXJlYVByb3BlcnR5RWRpdG9yQ29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICAgcGF0aDogJ2F4L2VkaXRvcnMvdGV4dGFyZWEnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogQVhTZWxlY3RCb3hQcm9wZXJ0eUVkaXRvckNvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIHBhdGg6ICdheC9lZGl0b3JzL3NlbGVjdCdcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBBWE51bWJlckJveFByb3BlcnR5RWRpdG9yQ29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICAgcGF0aDogJ2F4L2VkaXRvcnMvbnVtYmVyJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEFYUmFuZ2VQcm9wZXJ0eUVkaXRvckNvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIHBhdGg6ICdheC9lZGl0b3JzL3JhbmdlJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEFYQ29uZGl0aW9uYWxDb2xvclByb3BlcnR5RWRpdG9yQ29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICAgcGF0aDogJ2F4L2VkaXRvcnMvY29uZGl0aW9uYWwtY29sb3InXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogQVhDb2xvclByb3BlcnR5RWRpdG9yQ29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICAgcGF0aDogJ2F4L2VkaXRvcnMvY29sb3InXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogQVhTd2l0Y2hQcm9wZXJ0eUVkaXRvckNvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIHBhdGg6ICdheC9lZGl0b3JzL3N3aXRjaCdcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBDb2x1bW5Qcm9wZXJ0eUVkaXRvckNvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIHBhdGg6ICdheC9lZGl0b3JzL2NvbHVtbidcclxuICAgICAgICAgICAgfSwge1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBBWERhdGVQcm9wZXJ0eUVkaXRvckNvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIHBhdGg6ICdheC9lZGl0b3JzL2RhdGUnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogQVhUaW1lUHJvcGVydHlFZGl0b3JDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICBwYXRoOiAnYXgvZWRpdG9ycy90aW1lJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIF0pXHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW0FYUHJvcGVydHlFZGl0b3JSZW5kZXJlckRpcmVjdGl2ZV0sXHJcbiAgICBkZWNsYXJhdGlvbnM6IFtBWFByb3BlcnR5RWRpdG9yUmVuZGVyZXJEaXJlY3RpdmVdLFxyXG4gICAgcHJvdmlkZXJzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYUHJvcHBlcnR5RWRpdG9yTW9kdWxlIHsgfVxyXG4iXX0=
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZWRpdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvcHJvcGVydHktZWRpdG9yL3Byb3BlcnR5LWVkaXRvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDckYsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDeEgsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDckgsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0YsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scUNB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ekMsSUFBSSxFQUFFLGtCQUFrQjs2QkFDekI7NEJBQ0Q7Z0NBQ0UsU0FBUyxFQUFFLCtCQUErQjtnQ0FDMUMsSUFBSSxFQUFFLG1CQUFtQjs2QkFDMUI7NEJBQ0Q7Z0NBQ0UsU0FBUyxFQUFFLDZCQUE2QjtnQ0FDeEMsSUFBSSxFQUFFLG1CQUFtQjs2QkFDMUI7NEJBQ0Q7Z0NBQ0UsU0FBUyxFQUFFLDZCQUE2QjtnQ0FDeEMsSUFBSSxFQUFFLGlCQUFpQjs2QkFDeEI7NEJBQ0Q7Z0NBQ0UsU0FBUyxFQUFFLDZCQUE2QjtnQ0FDeEMsSUFBSSxFQUFFLGlCQUFpQjs2QkFDeEI7eUJBQ0YsQ0FBQztxQkFDSDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztvQkFDNUMsWUFBWSxFQUFFLENBQUMsaUNBQWlDLENBQUM7b0JBQ2pELFNBQVMsRUFBRSxFQUFFO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQVhDaGVja0JveFByb3BlcnR5RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9lZGl0b3JzL2NoZWNrLWVkaXRvci9jaGVjay1lZGl0b3InO1xyXG5pbXBvcnQgeyBBWENoZWNrUHJvcGVydHlFZGl0b3JNb2R1bGUgfSBmcm9tICcuL2VkaXRvcnMvY2hlY2stZWRpdG9yL2NoZWNrLm1vZHVsZSc7XHJcbmltcG9ydCB7IEFYQ29sb3JQcm9wZXJ0eUVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vZWRpdG9ycy9jb2xvci1lZGl0b3IvY29sb3IuZWRpdG9yJztcclxuaW1wb3J0IHsgQVhDb2xvclByb3BlcnR5RWRpdG9yTW9kdWxlIH0gZnJvbSAnLi9lZGl0b3JzL2NvbG9yLWVkaXRvci9jb2xvci5tb2R1bGUnO1xyXG5pbXBvcnQgeyBDb2x1bW5Qcm9wZXJ0eUVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vZWRpdG9ycy9jb2x1bW4tZWRpdG9yL2NvbHVtbi5lZGl0b3InO1xyXG5pbXBvcnQgeyBBWENvbHVtblByb3BlcnR5RWRpdG9yTW9kdWxlIH0gZnJvbSAnLi9lZGl0b3JzL2NvbHVtbi1lZGl0b3IvY29sdW1uLm1vZHVsZSc7XHJcbmltcG9ydCB7IEFYQ29uZGl0aW9uYWxDb2xvclByb3BlcnR5RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9lZGl0b3JzL2NvbmRpdGlvbmFsLWNvbG9yLWVkaXRvci9jb25kaXRpb25hbC1jb2xvci5lZGl0b3InO1xyXG5pbXBvcnQgeyBBWENvbmRpdGlvbmFsQ29sb3JQcm9wZXJ0eUVkaXRvck1vZHVsZSB9IGZyb20gJy4vZWRpdG9ycy9jb25kaXRpb25hbC1jb2xvci1lZGl0b3IvY29uZGl0aW9uYWwtY29sb3IubW9kdWxlJztcclxuaW1wb3J0IHsgQVhEYXRlUHJvcGVydHlFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2VkaXRvcnMvZGF0ZS1lZGl0b3IvZGF0ZS5lZGl0b3InO1xyXG5pbXBvcnQgeyBBWERhdGVQcm9wZXJ0eUVkaXRvck1vZHVsZSB9IGZyb20gJy4vZWRpdG9ycy9kYXRlLWVkaXRvci9kYXRlLm1vZHVsZSc7XHJcbmltcG9ydCB7IEFYTnVtYmVyQm94UHJvcGVydHlFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2VkaXRvcnMvbnVtYmVyLWVkaXRvci9udW1iZXIuZWRpdG9yJztcclxuaW1wb3J0IHsgQVhOdW1iZXJCb3hQcm9wZXJ0eUVkaXRvck1vZHVsZSB9IGZyb20gJy4vZWRpdG9ycy9udW1iZXItZWRpdG9yL251bWJlci5tb2R1bGUnO1xyXG5pbXBvcnQgeyBBWFJhbmdlUHJvcGVydHlFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2VkaXRvcnMvcmFuZ2UtZWRpdG9yL3JhbmdlLmVkaXRvcic7XHJcbmltcG9ydCB7IEFYUmFuZ2VQcm9wZXJ0eUVkaXRvck1vZHVsZSB9IGZyb20gJy4vZWRpdG9ycy9yYW5nZS1lZGl0b3IvcmFuZ2UubW9kdWxlJztcclxuaW1wb3J0IHsgQVhTZWFyY2hCYXJTZWxlY3RCb3hFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2VkaXRvcnMvc2VhcmNoYmFyLXNlbGVjdGJveC1lZGl0b3Ivc2VhcmNoYmFyLXNlbGVjdGJveC1lZGl0b3InO1xyXG5pbXBvcnQgeyBBWFNlbGVjdEJveFByb3BlcnR5RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9lZGl0b3JzL3NlbGVjdGJveC1lZGl0b3Ivc2VsZWN0Ym94LmVkaXRvcic7XHJcbmltcG9ydCB7IEFYU2VsZWN0Qm94UHJvcGVydHlFZGl0b3JNb2R1bGUgfSBmcm9tICcuL2VkaXRvcnMvc2VsZWN0Ym94LWVkaXRvci9zZWxlY3Rib3gubW9kdWxlJztcclxuaW1wb3J0IHsgQVhTZWxlY3Rpb25MaXN0UHJvcGVydHlFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2VkaXRvcnMvc2VsZWN0aW9uLWVkaXRvci9zZWxlY3Rpb24tZWRpdG9yJztcclxuaW1wb3J0IHsgQVhTZWxlY3Rpb25Qcm9wZXJ0eUVkaXRvck1vZHVsZSB9IGZyb20gJy4vZWRpdG9ycy9zZWxlY3Rpb24tZWRpdG9yL3NlbGVjdGlvbi5tb2R1bGUnO1xyXG5pbXBvcnQgeyBBWFN3aXRjaFByb3BlcnR5RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9lZGl0b3JzL3N3aXRjaC1lZGl0b3IvbnVtYmVyLmVkaXRvcic7XHJcbmltcG9ydCB7IEFYU3dpdGNoUHJvcGVydHlFZGl0b3JNb2R1bGUgfSBmcm9tICcuL2VkaXRvcnMvc3dpdGNoLWVkaXRvci9udW1iZXIubW9kdWxlJztcclxuaW1wb3J0IHsgQVhUZXh0UHJvcGVydHlFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2VkaXRvcnMvdGV4dC1lZGl0b3IvdGV4dC5lZGl0b3InO1xyXG5pbXBvcnQgeyBBWFRleHRQcm9wZXJ0eUVkaXRvck1vZHVsZSB9IGZyb20gJy4vZWRpdG9ycy90ZXh0LWVkaXRvci90ZXh0Lm1vZHVsZSc7XHJcbmltcG9ydCB7IEFYVGV4dGFyZWFQcm9wZXJ0eUVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vZWRpdG9ycy90ZXh0YXJlYS1lZGl0b3IvdGV4dGFyZWEuZWRpdG9yJztcclxuaW1wb3J0IHsgQVhUZXh0YXJlYVByb3BlcnR5RWRpdG9yTW9kdWxlIH0gZnJvbSAnLi9lZGl0b3JzL3RleHRhcmVhLWVkaXRvci90ZXh0YXJlYS5tb2R1bGUnO1xyXG5pbXBvcnQgeyBBWFRpbWVQcm9wZXJ0eUVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vZWRpdG9ycy90aW1lLWVkaXRvci90aW1lLmVkaXRvcic7XHJcbmltcG9ydCB7IEFYVGltZVByb3BlcnR5RWRpdG9yTW9kdWxlIH0gZnJvbSAnLi9lZGl0b3JzL3RpbWUtZWRpdG9yL3RpbWUubW9kdWxlJztcclxuaW1wb3J0IHsgQVhQcm9wZXJ0eUVkaXRvclJlbmRlcmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9wcm9wZXJ0eS1lZGl0b3ItcmVuZGVyZXIuZGlyZWN0aXZlJztcclxuXHJcbmNvbnN0IFdESUdFVF9NT0RVTEVTID0gW1xyXG4gIEFYTnVtYmVyQm94UHJvcGVydHlFZGl0b3JNb2R1bGUsXHJcbiAgQVhUZXh0UHJvcGVydHlFZGl0b3JNb2R1bGUsXHJcbiAgQVhTZWxlY3RCb3hQcm9wZXJ0eUVkaXRvck1vZHVsZSxcclxuICBBWFJhbmdlUHJvcGVydHlFZGl0b3JNb2R1bGUsXHJcbiAgQVhDb2xvclByb3BlcnR5RWRpdG9yTW9kdWxlLFxyXG4gIEFYQ29uZGl0aW9uYWxDb2xvclByb3BlcnR5RWRpdG9yTW9kdWxlLFxyXG4gIEFYQ29sdW1uUHJvcGVydHlFZGl0b3JNb2R1bGUsXHJcbiAgQVhTd2l0Y2hQcm9wZXJ0eUVkaXRvck1vZHVsZSxcclxuICBBWERhdGVQcm9wZXJ0eUVkaXRvck1vZHVsZSxcclxuICBBWFRpbWVQcm9wZXJ0eUVkaXRvck1vZHVsZSxcclxuICBBWFRpbWVQcm9wZXJ0eUVkaXRvck1vZHVsZSxcclxuICBBWFRleHRhcmVhUHJvcGVydHlFZGl0b3JNb2R1bGUsXHJcbiAgQVhDaGVja1Byb3BlcnR5RWRpdG9yTW9kdWxlLFxyXG4gIEFYU2VsZWN0aW9uUHJvcGVydHlFZGl0b3JNb2R1bGVcclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgV0RJR0VUX01PRFVMRVMsXHJcbiAgICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQoW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogJ2F4L2VkaXRvcnMvc2VsZWN0aW9uJyxcclxuICAgICAgICBjb21wb25lbnQ6IEFYU2VsZWN0aW9uTGlzdFByb3BlcnR5RWRpdG9yQ29tcG9uZW50XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBjb21wb25lbnQ6IEFYQ2hlY2tCb3hQcm9wZXJ0eUVkaXRvckNvbXBvbmVudCxcclxuICAgICAgICBwYXRoOiAnYXgvZWRpdG9ycy9jaGVjaydcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGNvbXBvbmVudDogQVhUZXh0UHJvcGVydHlFZGl0b3JDb21wb25lbnQsXHJcbiAgICAgICAgcGF0aDogJ2F4L2VkaXRvcnMvdGV4dCdcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGNvbXBvbmVudDogQVhUZXh0YXJlYVByb3BlcnR5RWRpdG9yQ29tcG9uZW50LFxyXG4gICAgICAgIHBhdGg6ICdheC9lZGl0b3JzL3RleHRhcmVhJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgY29tcG9uZW50OiBBWFNlbGVjdEJveFByb3BlcnR5RWRpdG9yQ29tcG9uZW50LFxyXG4gICAgICAgIHBhdGg6ICdheC9lZGl0b3JzL3NlbGVjdCdcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGNvbXBvbmVudDogQVhTZWFyY2hCYXJTZWxlY3RCb3hFZGl0b3JDb21wb25lbnQsXHJcbiAgICAgICAgcGF0aDogJ2F4L2VkaXRvcnMvc2VsZWN0Qm94J1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgY29tcG9uZW50OiBBWE51bWJlckJveFByb3BlcnR5RWRpdG9yQ29tcG9uZW50LFxyXG4gICAgICAgIHBhdGg6ICdheC9lZGl0b3JzL251bWJlcidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGNvbXBvbmVudDogQVhSYW5nZVByb3BlcnR5RWRpdG9yQ29tcG9uZW50LFxyXG4gICAgICAgIHBhdGg6ICdheC9lZGl0b3JzL3JhbmdlJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgY29tcG9uZW50OiBBWENvbmRpdGlvbmFsQ29sb3JQcm9wZXJ0eUVkaXRvckNvbXBvbmVudCxcclxuICAgICAgICBwYXRoOiAnYXgvZWRpdG9ycy9jb25kaXRpb25hbC1jb2xvcidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGNvbXBvbmVudDogQVhDb2xvclByb3BlcnR5RWRpdG9yQ29tcG9uZW50LFxyXG4gICAgICAgIHBhdGg6ICdheC9lZGl0b3JzL2NvbG9yJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgY29tcG9uZW50OiBBWFN3aXRjaFByb3BlcnR5RWRpdG9yQ29tcG9uZW50LFxyXG4gICAgICAgIHBhdGg6ICdheC9lZGl0b3JzL3N3aXRjaCdcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGNvbXBvbmVudDogQ29sdW1uUHJvcGVydHlFZGl0b3JDb21wb25lbnQsXHJcbiAgICAgICAgcGF0aDogJ2F4L2VkaXRvcnMvY29sdW1uJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgY29tcG9uZW50OiBBWERhdGVQcm9wZXJ0eUVkaXRvckNvbXBvbmVudCxcclxuICAgICAgICBwYXRoOiAnYXgvZWRpdG9ycy9kYXRlJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgY29tcG9uZW50OiBBWFRpbWVQcm9wZXJ0eUVkaXRvckNvbXBvbmVudCxcclxuICAgICAgICBwYXRoOiAnYXgvZWRpdG9ycy90aW1lJ1xyXG4gICAgICB9XHJcbiAgICBdKVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW0FYUHJvcGVydHlFZGl0b3JSZW5kZXJlckRpcmVjdGl2ZV0sXHJcbiAgZGVjbGFyYXRpb25zOiBbQVhQcm9wZXJ0eUVkaXRvclJlbmRlcmVyRGlyZWN0aXZlXSxcclxuICBwcm92aWRlcnM6IFtdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFByb3BwZXJ0eUVkaXRvck1vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -160,7 +160,7 @@ export class AXQueryBuilderPopupComponent extends AXBasePopupPageComponent {
|
|
|
160
160
|
}
|
|
161
161
|
}
|
|
162
162
|
AXQueryBuilderPopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXQueryBuilderPopupComponent, deps: [{ token: i1.AXToastService }], target: i0.ɵɵFactoryTarget.Component });
|
|
163
|
-
AXQueryBuilderPopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXQueryBuilderPopupComponent, selector: "ng-component", viewQueries: [{ propertyName: "form", first: true, predicate: AXValidationFormComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div>\r\n <ax-validation-form #form>\r\n <div *ngFor=\"let rule of items\">\r\n\r\n <div *ngIf=\" rule.control\" [ngSwitch]=\"rule.control.type\" style=\"padding: 1em;\">\r\n <div *ngSwitchCase=\"'textBox'\">\r\n <ax-form-group>\r\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\r\n <ax-text-box (onValueChanged)=\"textValueChange($event,rule)\"\r\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\r\n <ax-validation>\r\n <ax-validation-rule type=\"required\"></ax-validation-rule>\r\n </ax-validation>\r\n </ax-text-box>\r\n </ax-form-group>\r\n </div>\r\n <div *ngSwitchCase=\"'selectBox'\">\r\n <ax-form-group>\r\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\r\n <ax-select-box placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\r\n [textField]=\"getOption('textField',rule)\" [(selectedItems)]=\"rule.valueItem\"\r\n [valueField]=\"getOption('valueField',rule)\" [mode]=\"getOption('mode',rule)\"\r\n (selectedItemsChange)=\"selectedItemsChange($event,rule)\" size=\"sm\" #selectBoxValue\r\n [remoteOperation]=\"getOption('remoteOperation',rule)\">\r\n <ax-validation>\r\n <ax-validation-rule type=\"required\"></ax-validation-rule>\r\n </ax-validation>\r\n <ax-data-source [provideData]=\"getProvideData\" [params]=\"rule\"></ax-data-source>\r\n </ax-select-box>\r\n </ax-form-group>\r\n </div>\r\n <div *ngSwitchCase=\"'numberBox'\">\r\n <ax-form-group>\r\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\r\n <ax-number-box (onValueChanged)=\"valueChange($event,rule)\"\r\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\r\n <ax-validation>\r\n <ax-validation-rule type=\"required\"></ax-validation-rule>\r\n </ax-validation>\r\n </ax-number-box>\r\n </ax-form-group>\r\n </div>\r\n <div *ngSwitchCase=\"'datePicker'\">\r\n\r\n\r\n </div>\r\n <div *ngSwitchCase=\"'boolean'\">\r\n <ax-form-group>\r\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\r\n <ax-select-box #selectBoxBoolean (selectedItemsChange)=\"valueBooleanChange($event,rule)\"\r\n allowNull=\"false\" [selectedValues]=\"rule.value\" size=\"sm\" mode=\"single\">\r\n <ax-data-source [provideData]=\"provideDataBoolean\">\r\n </ax-data-source>\r\n <ax-validation>\r\n <ax-validation-rule type=\"required\"></ax-validation-rule>\r\n </ax-validation>\r\n </ax-select-box>\r\n </ax-form-group>\r\n\r\n </div>\r\n <div *ngSwitchDefault>\r\n <ax-form-group>\r\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\r\n <ax-text-box (onValueChanged)=\"textValueChange($event,rule)\"\r\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\r\n <ax-validation>\r\n <ax-validation-rule type=\"required\"></ax-validation-rule>\r\n </ax-validation>\r\n </ax-text-box>\r\n\r\n </ax-form-group>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n </ax-validation-form>\r\n</div>", components: [{ type: i2.AXValidationFormComponent, selector: "ax-validation-form", inputs: ["validateOn"], outputs: ["onInit"] }, { type: i3.AXFormGroupComponent, selector: "ax-form-group", inputs: ["size"] }, { type: i4.AXLabelComponent, selector: "ax-label", inputs: ["size"] }, { type: i5.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "type", "showMask", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }, { type: i6.AXValidationComponent, selector: "ax-validation", inputs: ["rules", "validateOn"], outputs: ["rulesChange", "showMessage"] }, { type: i7.AXValidationRuleComponent, selector: "ax-validation-rule", inputs: ["type", "message", "value", "enabled"] }, { type: i8.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["showDropDownButton", "rowInputTemplate", "showCheckBox", "readonly", "rtl", "disabled", "placeholder", "size", "allowNull", "textAlign", "bufferSize", "remoteOperation", "dataSource", "validation", "disabledCallback", "allowSearch", "textField", "valueField", "disabledField", "mode", "items", "selectedItems", "selectedValues"], outputs: ["dropdownToggle", "itemsChange", "onBlur", "onFocus", "selectionChanged", "selectedItemsChange", "selectedValuesChange"] }, { type: i9.AXDataSourceComponent, selector: "ax-data-source", inputs: ["provideData", "params"] }, { type: i10.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["min", "max", "showSeparator", "showCurrency", "showCounter", "scrollWeel", "showDoubleCounter", "maxLength", "intStep", "decimalNumber", "customStep"] }], directives: [{ type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i11.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i11.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
|
|
163
|
+
AXQueryBuilderPopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXQueryBuilderPopupComponent, selector: "ng-component", viewQueries: [{ propertyName: "form", first: true, predicate: AXValidationFormComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div>\r\n <ax-validation-form #form>\r\n <div *ngFor=\"let rule of items\">\r\n\r\n <div *ngIf=\" rule.control\" [ngSwitch]=\"rule.control.type\" style=\"padding: 1em;\">\r\n <div *ngSwitchCase=\"'textBox'\">\r\n <ax-form-group>\r\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\r\n <ax-text-box (onValueChanged)=\"textValueChange($event,rule)\"\r\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\r\n <ax-validation>\r\n <ax-validation-rule type=\"required\"></ax-validation-rule>\r\n </ax-validation>\r\n </ax-text-box>\r\n </ax-form-group>\r\n </div>\r\n <div *ngSwitchCase=\"'selectBox'\">\r\n <ax-form-group>\r\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\r\n <ax-select-box placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\r\n [textField]=\"getOption('textField',rule)\" [(selectedItems)]=\"rule.valueItem\"\r\n [valueField]=\"getOption('valueField',rule)\" [mode]=\"getOption('mode',rule)\"\r\n (selectedItemsChange)=\"selectedItemsChange($event,rule)\" size=\"sm\" #selectBoxValue\r\n [remoteOperation]=\"getOption('remoteOperation',rule)\">\r\n <ax-validation>\r\n <ax-validation-rule type=\"required\"></ax-validation-rule>\r\n </ax-validation>\r\n <ax-data-source [provideData]=\"getProvideData\" [params]=\"rule\"></ax-data-source>\r\n </ax-select-box>\r\n </ax-form-group>\r\n </div>\r\n <div *ngSwitchCase=\"'numberBox'\">\r\n <ax-form-group>\r\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\r\n <ax-number-box (onValueChanged)=\"valueChange($event,rule)\"\r\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\r\n <ax-validation>\r\n <ax-validation-rule type=\"required\"></ax-validation-rule>\r\n </ax-validation>\r\n </ax-number-box>\r\n </ax-form-group>\r\n </div>\r\n <div *ngSwitchCase=\"'datePicker'\">\r\n\r\n\r\n </div>\r\n <div *ngSwitchCase=\"'boolean'\">\r\n <ax-form-group>\r\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\r\n <ax-select-box #selectBoxBoolean (selectedItemsChange)=\"valueBooleanChange($event,rule)\"\r\n allowNull=\"false\" [selectedValues]=\"rule.value\" size=\"sm\" mode=\"single\">\r\n <ax-data-source [provideData]=\"provideDataBoolean\">\r\n </ax-data-source>\r\n <ax-validation>\r\n <ax-validation-rule type=\"required\"></ax-validation-rule>\r\n </ax-validation>\r\n </ax-select-box>\r\n </ax-form-group>\r\n\r\n </div>\r\n <div *ngSwitchDefault>\r\n <ax-form-group>\r\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\r\n <ax-text-box (onValueChanged)=\"textValueChange($event,rule)\"\r\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\r\n <ax-validation>\r\n <ax-validation-rule type=\"required\"></ax-validation-rule>\r\n </ax-validation>\r\n </ax-text-box>\r\n\r\n </ax-form-group>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n </ax-validation-form>\r\n</div>", components: [{ type: i2.AXValidationFormComponent, selector: "ax-validation-form", inputs: ["validateOn"], outputs: ["onInit"] }, { type: i3.AXFormGroupComponent, selector: "ax-form-group", inputs: ["size"] }, { type: i4.AXLabelComponent, selector: "ax-label", inputs: ["size"] }, { type: i5.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "type", "showMask", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }, { type: i6.AXValidationComponent, selector: "ax-validation", inputs: ["rules", "validateOn"], outputs: ["rulesChange", "showMessage"] }, { type: i7.AXValidationRuleComponent, selector: "ax-validation-rule", inputs: ["type", "message", "value", "enabled"] }, { type: i8.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["showDropDownButton", "rowInputTemplate", "showCheckBox", "readonly", "rtl", "disabled", "placeholder", "size", "allowNull", "textAlign", "bufferSize", "remoteOperation", "fitParent", "dropdownWidth", "dataSource", "validation", "disabledCallback", "allowSearch", "textField", "valueField", "disabledField", "mode", "items", "selectedItems", "selectedValues"], outputs: ["dropdownToggle", "itemsChange", "onBlur", "onFocus", "selectionChanged", "selectedItemsChange", "selectedValuesChange"] }, { type: i9.AXDataSourceComponent, selector: "ax-data-source", inputs: ["provideData", "params"] }, { type: i10.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["min", "max", "showSeparator", "showCurrency", "showCounter", "scrollWeel", "showDoubleCounter", "maxLength", "intStep", "decimalNumber", "customStep"] }], directives: [{ type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i11.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i11.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
|
|
164
164
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXQueryBuilderPopupComponent, decorators: [{
|
|
165
165
|
type: Component,
|
|
166
166
|
args: [{ template: "<div>\r\n <ax-validation-form #form>\r\n <div *ngFor=\"let rule of items\">\r\n\r\n <div *ngIf=\" rule.control\" [ngSwitch]=\"rule.control.type\" style=\"padding: 1em;\">\r\n <div *ngSwitchCase=\"'textBox'\">\r\n <ax-form-group>\r\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\r\n <ax-text-box (onValueChanged)=\"textValueChange($event,rule)\"\r\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\r\n <ax-validation>\r\n <ax-validation-rule type=\"required\"></ax-validation-rule>\r\n </ax-validation>\r\n </ax-text-box>\r\n </ax-form-group>\r\n </div>\r\n <div *ngSwitchCase=\"'selectBox'\">\r\n <ax-form-group>\r\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\r\n <ax-select-box placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\r\n [textField]=\"getOption('textField',rule)\" [(selectedItems)]=\"rule.valueItem\"\r\n [valueField]=\"getOption('valueField',rule)\" [mode]=\"getOption('mode',rule)\"\r\n (selectedItemsChange)=\"selectedItemsChange($event,rule)\" size=\"sm\" #selectBoxValue\r\n [remoteOperation]=\"getOption('remoteOperation',rule)\">\r\n <ax-validation>\r\n <ax-validation-rule type=\"required\"></ax-validation-rule>\r\n </ax-validation>\r\n <ax-data-source [provideData]=\"getProvideData\" [params]=\"rule\"></ax-data-source>\r\n </ax-select-box>\r\n </ax-form-group>\r\n </div>\r\n <div *ngSwitchCase=\"'numberBox'\">\r\n <ax-form-group>\r\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\r\n <ax-number-box (onValueChanged)=\"valueChange($event,rule)\"\r\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\r\n <ax-validation>\r\n <ax-validation-rule type=\"required\"></ax-validation-rule>\r\n </ax-validation>\r\n </ax-number-box>\r\n </ax-form-group>\r\n </div>\r\n <div *ngSwitchCase=\"'datePicker'\">\r\n\r\n\r\n </div>\r\n <div *ngSwitchCase=\"'boolean'\">\r\n <ax-form-group>\r\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\r\n <ax-select-box #selectBoxBoolean (selectedItemsChange)=\"valueBooleanChange($event,rule)\"\r\n allowNull=\"false\" [selectedValues]=\"rule.value\" size=\"sm\" mode=\"single\">\r\n <ax-data-source [provideData]=\"provideDataBoolean\">\r\n </ax-data-source>\r\n <ax-validation>\r\n <ax-validation-rule type=\"required\"></ax-validation-rule>\r\n </ax-validation>\r\n </ax-select-box>\r\n </ax-form-group>\r\n\r\n </div>\r\n <div *ngSwitchDefault>\r\n <ax-form-group>\r\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\r\n <ax-text-box (onValueChanged)=\"textValueChange($event,rule)\"\r\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\r\n <ax-validation>\r\n <ax-validation-rule type=\"required\"></ax-validation-rule>\r\n </ax-validation>\r\n </ax-text-box>\r\n\r\n </ax-form-group>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n </ax-validation-form>\r\n</div>" }]
|
|
@@ -320,7 +320,7 @@ export class AXQueryBuilderRuleComponent {
|
|
|
320
320
|
}
|
|
321
321
|
}
|
|
322
322
|
AXQueryBuilderRuleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXQueryBuilderRuleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
323
|
-
AXQueryBuilderRuleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXQueryBuilderRuleComponent, selector: "ax-query-rule", inputs: { isEditing: "isEditing", rule: "rule", parent: "parent", mode: "mode", fields: "fields" }, outputs: { onRuleDelete: "onRuleDelete", ruleChanged: "ruleChanged" }, host: { classAttribute: "ax ax-query-rule" }, viewQueries: [{ propertyName: "selectBox", first: true, predicate: ["selectBox"], descendants: true }, { propertyName: "selectBoxValue", first: true, predicate: ["selectBoxValue"], descendants: true }, { propertyName: "selectBoxBoolean", first: true, predicate: ["selectBoxBoolean"], descendants: true }, { propertyName: "textBoxNameValue", first: true, predicate: ["textBoxNameValue"], descendants: true }, { propertyName: "form", first: true, predicate: AXValidationFormComponent, descendants: true }], ngImport: i0, template: "<div class=\"condition\" *ngIf=\"parent\">\r\n <div class=\"text {{parent.condition}}\">\r\n <span>{{parent.condition}}</span>\r\n </div>\r\n</div>\r\n<div class=\"handler\">\r\n <i class=\"far fa-grip-lines-vertical\"></i>\r\n</div>\r\n\r\n<div class=\"caption\" [ngClass]=\"{'editable': isEditing}\">\r\n <ng-container *ngIf=\"isEditing;else fieldsTemplate\">\r\n <ax-form-group>\r\n <ax-select-box [readonly]=\"mode == 'edit'\" (selectionChanged)=\"captionChange($event)\" allowNull=\"false\"\r\n [(selectedItems)]=\"rule.dataFieldItem\" textField=\"caption\" valueField=\"dataField\" [items]=\"fields\"\r\n mode=\"single\">\r\n </ax-select-box>\r\n </ax-form-group>\r\n </ng-container>\r\n <ng-template #fieldsTemplate>\r\n <div (click)=\"handleEditClick()\">\r\n {{rule.caption}}\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n<div class=\"operator\" [ngClass]=\"{'editable': isEditing,'radius':!showValue}\">\r\n <ng-container *ngIf=\"isEditing;else operatorTemplate\">\r\n <ax-form-group>\r\n <ax-select-box [readonly]=\"mode == 'edit'\" *ngIf=\"showOperatorSelectBox\" [(selectedValues)]=\"rule.operator\"\r\n #selectBox (selectedItemsChange)=\"operatorChange($event)\" allowNull=\"false\" mode=\"single\">\r\n <ax-data-source [provideData]=\"provideDataOperator\">\r\n </ax-data-source>\r\n </ax-select-box>\r\n </ax-form-group>\r\n </ng-container>\r\n <ng-template #operatorTemplate>\r\n <div class=\"text\" (click)=\"handleEditClick()\">\r\n {{('queryBuilder.'+rule.operator) | trans}}\r\n </div>\r\n </ng-template>\r\n</div>\r\n<div *ngIf=\"showValue\" class=\"value\" [ngClass]=\"{'editable': isEditing}\">\r\n <ng-container *ngIf=\"isEditing;else valueTemplate\">\r\n\r\n <div *ngIf=\" rule.control && !isOnDemandLabel\" [ngSwitch]=\"rule.control.type\">\r\n <div *ngSwitchCase=\"'textBox'\">\r\n <ax-form-group>\r\n <ax-text-box (onValueChanged)=\"valueChange($event)\" placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\r\n [(value)]=\"rule.value\">\r\n </ax-text-box>\r\n </ax-form-group>\r\n </div>\r\n <div *ngSwitchCase=\"'selectBox'\">\r\n <ax-form-group>\r\n <ax-select-box *ngIf=\"showSelectBox\" [mode]=\"getOption('mode')\"\r\n [remoteOperation]=\"getOption('remoteOperation')\" [valueField]=\"getOption('valueField')\"\r\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" [textField]=\"getOption('textField')\"\r\n [(selectedItems)]=\"rule.valueItem\" (selectedItemsChange)=\"selectedItemsChange($event)\"\r\n #selectBoxValue>\r\n <ax-data-source [provideData]=\"getProvideData\"></ax-data-source>\r\n </ax-select-box>\r\n </ax-form-group>\r\n </div>\r\n\r\n <div *ngSwitchCase=\"'numberBox'\">\r\n <ax-form-group>\r\n <ax-number-box [decimalNumber]=\"2\" (onValueChanged)=\"valueChange($event)\" placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\r\n [(value)]=\"rule.value\">\r\n </ax-number-box>\r\n </ax-form-group>\r\n </div>\r\n <div *ngSwitchCase=\"'datePicker'\">\r\n\r\n\r\n </div>\r\n <div *ngSwitchCase=\"'boolean'\">\r\n\r\n <ax-form-group>\r\n <ax-select-box #selectBoxBoolean (selectedItemsChange)=\"valueBooleanChange($event)\"\r\n allowNull=\"false\" [selectedValues]=\"rule.value\" mode=\"single\">\r\n <ax-data-source [provideData]=\"provideDataBoolean\">\r\n </ax-data-source>\r\n </ax-select-box>\r\n </ax-form-group>\r\n\r\n </div>\r\n <div *ngSwitchDefault>\r\n <ax-form-group>\r\n <ax-text-box (onValueChanged)=\"valueChange($event)\" placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\r\n [(value)]=\"rule.value\">\r\n </ax-text-box>\r\n\r\n </ax-form-group>\r\n\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"isOnDemandLabel\">\r\n\r\n <ax-text-box #textBoxNameValue [value]=\"getOnDemandName(rule.onDemandLabel)\"\r\n (onValueChanged)=\"onDemandLabelChange($event)\" placeholder=\"\u0646\u0627\u0645 \u0645\u062A\u063A\u06CC\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\">\r\n <!-- <ax-validation>\r\n <ax-validation-rule type=\"required\"></ax-validation-rule>\r\n </ax-validation> -->\r\n </ax-text-box>\r\n\r\n\r\n </div>\r\n\r\n </ng-container>\r\n <ng-template #valueTemplate>\r\n <div (click)=\"handleEditClick()\">\r\n\r\n {{rule.text}}\r\n\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n<div class=\"buttons-list\">\r\n <div *ngIf=\"showValue && isEditing && mode == 'new'\" class=\"button variable\"\r\n [ngClass]=\"{'active-button': isOnDemandLabel}\">\r\n <i class=\"far fa-dollar-sign\"></i>\r\n <ax-check-box [value]=\"isOnDemandLabel\" (onClick)=\"onDemandLabel($event)\">\r\n </ax-check-box>\r\n </div>\r\n\r\n <div class=\"button commit\" (click)=\"handleCommitClick()\" *ngIf=\"isEditing\">\r\n <i class=\"far fa-check\"></i>\r\n </div>\r\n <div class=\"button remove\" (click)=\"handleRemoveClick()\" *ngIf=\"mode == 'new'\">\r\n <i class=\"far fa-times\"></i>\r\n </div>\r\n</div>", components: [{ type: i1.AXFormGroupComponent, selector: "ax-form-group", inputs: ["size"] }, { type: i2.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["showDropDownButton", "rowInputTemplate", "showCheckBox", "readonly", "rtl", "disabled", "placeholder", "size", "allowNull", "textAlign", "bufferSize", "remoteOperation", "dataSource", "validation", "disabledCallback", "allowSearch", "textField", "valueField", "disabledField", "mode", "items", "selectedItems", "selectedValues"], outputs: ["dropdownToggle", "itemsChange", "onBlur", "onFocus", "selectionChanged", "selectedItemsChange", "selectedValuesChange"] }, { type: i3.AXDataSourceComponent, selector: "ax-data-source", inputs: ["provideData", "params"] }, { type: i4.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "type", "showMask", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }, { type: i5.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["min", "max", "showSeparator", "showCurrency", "showCounter", "scrollWeel", "showDoubleCounter", "maxLength", "intStep", "decimalNumber", "customStep"] }, { type: i6.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["readonly", "disabled", "size", "label", "tabIndex", "indeterminate", "value"], outputs: ["onValueChanged", "valueChange", "onClick"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "trans": i8.AXTranslatorPipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
323
|
+
AXQueryBuilderRuleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXQueryBuilderRuleComponent, selector: "ax-query-rule", inputs: { isEditing: "isEditing", rule: "rule", parent: "parent", mode: "mode", fields: "fields" }, outputs: { onRuleDelete: "onRuleDelete", ruleChanged: "ruleChanged" }, host: { classAttribute: "ax ax-query-rule" }, viewQueries: [{ propertyName: "selectBox", first: true, predicate: ["selectBox"], descendants: true }, { propertyName: "selectBoxValue", first: true, predicate: ["selectBoxValue"], descendants: true }, { propertyName: "selectBoxBoolean", first: true, predicate: ["selectBoxBoolean"], descendants: true }, { propertyName: "textBoxNameValue", first: true, predicate: ["textBoxNameValue"], descendants: true }, { propertyName: "form", first: true, predicate: AXValidationFormComponent, descendants: true }], ngImport: i0, template: "<div class=\"condition\" *ngIf=\"parent\">\r\n <div class=\"text {{parent.condition}}\">\r\n <span>{{parent.condition}}</span>\r\n </div>\r\n</div>\r\n<div class=\"handler\">\r\n <i class=\"far fa-grip-lines-vertical\"></i>\r\n</div>\r\n\r\n<div class=\"caption\" [ngClass]=\"{'editable': isEditing}\">\r\n <ng-container *ngIf=\"isEditing;else fieldsTemplate\">\r\n <ax-form-group>\r\n <ax-select-box [readonly]=\"mode == 'edit'\" (selectionChanged)=\"captionChange($event)\" allowNull=\"false\"\r\n [(selectedItems)]=\"rule.dataFieldItem\" textField=\"caption\" valueField=\"dataField\" [items]=\"fields\"\r\n mode=\"single\">\r\n </ax-select-box>\r\n </ax-form-group>\r\n </ng-container>\r\n <ng-template #fieldsTemplate>\r\n <div (click)=\"handleEditClick()\">\r\n {{rule.caption}}\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n<div class=\"operator\" [ngClass]=\"{'editable': isEditing,'radius':!showValue}\">\r\n <ng-container *ngIf=\"isEditing;else operatorTemplate\">\r\n <ax-form-group>\r\n <ax-select-box [readonly]=\"mode == 'edit'\" *ngIf=\"showOperatorSelectBox\" [(selectedValues)]=\"rule.operator\"\r\n #selectBox (selectedItemsChange)=\"operatorChange($event)\" allowNull=\"false\" mode=\"single\">\r\n <ax-data-source [provideData]=\"provideDataOperator\">\r\n </ax-data-source>\r\n </ax-select-box>\r\n </ax-form-group>\r\n </ng-container>\r\n <ng-template #operatorTemplate>\r\n <div class=\"text\" (click)=\"handleEditClick()\">\r\n {{('queryBuilder.'+rule.operator) | trans}}\r\n </div>\r\n </ng-template>\r\n</div>\r\n<div *ngIf=\"showValue\" class=\"value\" [ngClass]=\"{'editable': isEditing}\">\r\n <ng-container *ngIf=\"isEditing;else valueTemplate\">\r\n\r\n <div *ngIf=\" rule.control && !isOnDemandLabel\" [ngSwitch]=\"rule.control.type\">\r\n <div *ngSwitchCase=\"'textBox'\">\r\n <ax-form-group>\r\n <ax-text-box (onValueChanged)=\"valueChange($event)\" placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\r\n [(value)]=\"rule.value\">\r\n </ax-text-box>\r\n </ax-form-group>\r\n </div>\r\n <div *ngSwitchCase=\"'selectBox'\">\r\n <ax-form-group>\r\n <ax-select-box *ngIf=\"showSelectBox\" [mode]=\"getOption('mode')\"\r\n [remoteOperation]=\"getOption('remoteOperation')\" [valueField]=\"getOption('valueField')\"\r\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" [textField]=\"getOption('textField')\"\r\n [(selectedItems)]=\"rule.valueItem\" (selectedItemsChange)=\"selectedItemsChange($event)\"\r\n #selectBoxValue>\r\n <ax-data-source [provideData]=\"getProvideData\"></ax-data-source>\r\n </ax-select-box>\r\n </ax-form-group>\r\n </div>\r\n\r\n <div *ngSwitchCase=\"'numberBox'\">\r\n <ax-form-group>\r\n <ax-number-box [decimalNumber]=\"2\" (onValueChanged)=\"valueChange($event)\" placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\r\n [(value)]=\"rule.value\">\r\n </ax-number-box>\r\n </ax-form-group>\r\n </div>\r\n <div *ngSwitchCase=\"'datePicker'\">\r\n\r\n\r\n </div>\r\n <div *ngSwitchCase=\"'boolean'\">\r\n\r\n <ax-form-group>\r\n <ax-select-box #selectBoxBoolean (selectedItemsChange)=\"valueBooleanChange($event)\"\r\n allowNull=\"false\" [selectedValues]=\"rule.value\" mode=\"single\">\r\n <ax-data-source [provideData]=\"provideDataBoolean\">\r\n </ax-data-source>\r\n </ax-select-box>\r\n </ax-form-group>\r\n\r\n </div>\r\n <div *ngSwitchDefault>\r\n <ax-form-group>\r\n <ax-text-box (onValueChanged)=\"valueChange($event)\" placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\r\n [(value)]=\"rule.value\">\r\n </ax-text-box>\r\n\r\n </ax-form-group>\r\n\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"isOnDemandLabel\">\r\n\r\n <ax-text-box #textBoxNameValue [value]=\"getOnDemandName(rule.onDemandLabel)\"\r\n (onValueChanged)=\"onDemandLabelChange($event)\" placeholder=\"\u0646\u0627\u0645 \u0645\u062A\u063A\u06CC\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\">\r\n <!-- <ax-validation>\r\n <ax-validation-rule type=\"required\"></ax-validation-rule>\r\n </ax-validation> -->\r\n </ax-text-box>\r\n\r\n\r\n </div>\r\n\r\n </ng-container>\r\n <ng-template #valueTemplate>\r\n <div (click)=\"handleEditClick()\">\r\n\r\n {{rule.text}}\r\n\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n<div class=\"buttons-list\">\r\n <div *ngIf=\"showValue && isEditing && mode == 'new'\" class=\"button variable\"\r\n [ngClass]=\"{'active-button': isOnDemandLabel}\">\r\n <i class=\"far fa-dollar-sign\"></i>\r\n <ax-check-box [value]=\"isOnDemandLabel\" (onClick)=\"onDemandLabel($event)\">\r\n </ax-check-box>\r\n </div>\r\n\r\n <div class=\"button commit\" (click)=\"handleCommitClick()\" *ngIf=\"isEditing\">\r\n <i class=\"far fa-check\"></i>\r\n </div>\r\n <div class=\"button remove\" (click)=\"handleRemoveClick()\" *ngIf=\"mode == 'new'\">\r\n <i class=\"far fa-times\"></i>\r\n </div>\r\n</div>", components: [{ type: i1.AXFormGroupComponent, selector: "ax-form-group", inputs: ["size"] }, { type: i2.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["showDropDownButton", "rowInputTemplate", "showCheckBox", "readonly", "rtl", "disabled", "placeholder", "size", "allowNull", "textAlign", "bufferSize", "remoteOperation", "fitParent", "dropdownWidth", "dataSource", "validation", "disabledCallback", "allowSearch", "textField", "valueField", "disabledField", "mode", "items", "selectedItems", "selectedValues"], outputs: ["dropdownToggle", "itemsChange", "onBlur", "onFocus", "selectionChanged", "selectedItemsChange", "selectedValuesChange"] }, { type: i3.AXDataSourceComponent, selector: "ax-data-source", inputs: ["provideData", "params"] }, { type: i4.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "type", "showMask", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }, { type: i5.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["min", "max", "showSeparator", "showCurrency", "showCounter", "scrollWeel", "showDoubleCounter", "maxLength", "intStep", "decimalNumber", "customStep"] }, { type: i6.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["readonly", "disabled", "size", "label", "tabIndex", "indeterminate", "value"], outputs: ["onValueChanged", "valueChange", "onClick"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "trans": i8.AXTranslatorPipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
324
324
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXQueryBuilderRuleComponent, decorators: [{
|
|
325
325
|
type: Component,
|
|
326
326
|
args: [{ selector: 'ax-query-rule', host: { class: 'ax ax-query-rule' }, encapsulation: ViewEncapsulation.None, template: "<div class=\"condition\" *ngIf=\"parent\">\r\n <div class=\"text {{parent.condition}}\">\r\n <span>{{parent.condition}}</span>\r\n </div>\r\n</div>\r\n<div class=\"handler\">\r\n <i class=\"far fa-grip-lines-vertical\"></i>\r\n</div>\r\n\r\n<div class=\"caption\" [ngClass]=\"{'editable': isEditing}\">\r\n <ng-container *ngIf=\"isEditing;else fieldsTemplate\">\r\n <ax-form-group>\r\n <ax-select-box [readonly]=\"mode == 'edit'\" (selectionChanged)=\"captionChange($event)\" allowNull=\"false\"\r\n [(selectedItems)]=\"rule.dataFieldItem\" textField=\"caption\" valueField=\"dataField\" [items]=\"fields\"\r\n mode=\"single\">\r\n </ax-select-box>\r\n </ax-form-group>\r\n </ng-container>\r\n <ng-template #fieldsTemplate>\r\n <div (click)=\"handleEditClick()\">\r\n {{rule.caption}}\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n<div class=\"operator\" [ngClass]=\"{'editable': isEditing,'radius':!showValue}\">\r\n <ng-container *ngIf=\"isEditing;else operatorTemplate\">\r\n <ax-form-group>\r\n <ax-select-box [readonly]=\"mode == 'edit'\" *ngIf=\"showOperatorSelectBox\" [(selectedValues)]=\"rule.operator\"\r\n #selectBox (selectedItemsChange)=\"operatorChange($event)\" allowNull=\"false\" mode=\"single\">\r\n <ax-data-source [provideData]=\"provideDataOperator\">\r\n </ax-data-source>\r\n </ax-select-box>\r\n </ax-form-group>\r\n </ng-container>\r\n <ng-template #operatorTemplate>\r\n <div class=\"text\" (click)=\"handleEditClick()\">\r\n {{('queryBuilder.'+rule.operator) | trans}}\r\n </div>\r\n </ng-template>\r\n</div>\r\n<div *ngIf=\"showValue\" class=\"value\" [ngClass]=\"{'editable': isEditing}\">\r\n <ng-container *ngIf=\"isEditing;else valueTemplate\">\r\n\r\n <div *ngIf=\" rule.control && !isOnDemandLabel\" [ngSwitch]=\"rule.control.type\">\r\n <div *ngSwitchCase=\"'textBox'\">\r\n <ax-form-group>\r\n <ax-text-box (onValueChanged)=\"valueChange($event)\" placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\r\n [(value)]=\"rule.value\">\r\n </ax-text-box>\r\n </ax-form-group>\r\n </div>\r\n <div *ngSwitchCase=\"'selectBox'\">\r\n <ax-form-group>\r\n <ax-select-box *ngIf=\"showSelectBox\" [mode]=\"getOption('mode')\"\r\n [remoteOperation]=\"getOption('remoteOperation')\" [valueField]=\"getOption('valueField')\"\r\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" [textField]=\"getOption('textField')\"\r\n [(selectedItems)]=\"rule.valueItem\" (selectedItemsChange)=\"selectedItemsChange($event)\"\r\n #selectBoxValue>\r\n <ax-data-source [provideData]=\"getProvideData\"></ax-data-source>\r\n </ax-select-box>\r\n </ax-form-group>\r\n </div>\r\n\r\n <div *ngSwitchCase=\"'numberBox'\">\r\n <ax-form-group>\r\n <ax-number-box [decimalNumber]=\"2\" (onValueChanged)=\"valueChange($event)\" placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\r\n [(value)]=\"rule.value\">\r\n </ax-number-box>\r\n </ax-form-group>\r\n </div>\r\n <div *ngSwitchCase=\"'datePicker'\">\r\n\r\n\r\n </div>\r\n <div *ngSwitchCase=\"'boolean'\">\r\n\r\n <ax-form-group>\r\n <ax-select-box #selectBoxBoolean (selectedItemsChange)=\"valueBooleanChange($event)\"\r\n allowNull=\"false\" [selectedValues]=\"rule.value\" mode=\"single\">\r\n <ax-data-source [provideData]=\"provideDataBoolean\">\r\n </ax-data-source>\r\n </ax-select-box>\r\n </ax-form-group>\r\n\r\n </div>\r\n <div *ngSwitchDefault>\r\n <ax-form-group>\r\n <ax-text-box (onValueChanged)=\"valueChange($event)\" placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\r\n [(value)]=\"rule.value\">\r\n </ax-text-box>\r\n\r\n </ax-form-group>\r\n\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"isOnDemandLabel\">\r\n\r\n <ax-text-box #textBoxNameValue [value]=\"getOnDemandName(rule.onDemandLabel)\"\r\n (onValueChanged)=\"onDemandLabelChange($event)\" placeholder=\"\u0646\u0627\u0645 \u0645\u062A\u063A\u06CC\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\">\r\n <!-- <ax-validation>\r\n <ax-validation-rule type=\"required\"></ax-validation-rule>\r\n </ax-validation> -->\r\n </ax-text-box>\r\n\r\n\r\n </div>\r\n\r\n </ng-container>\r\n <ng-template #valueTemplate>\r\n <div (click)=\"handleEditClick()\">\r\n\r\n {{rule.text}}\r\n\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n<div class=\"buttons-list\">\r\n <div *ngIf=\"showValue && isEditing && mode == 'new'\" class=\"button variable\"\r\n [ngClass]=\"{'active-button': isOnDemandLabel}\">\r\n <i class=\"far fa-dollar-sign\"></i>\r\n <ax-check-box [value]=\"isOnDemandLabel\" (onClick)=\"onDemandLabel($event)\">\r\n </ax-check-box>\r\n </div>\r\n\r\n <div class=\"button commit\" (click)=\"handleCommitClick()\" *ngIf=\"isEditing\">\r\n <i class=\"far fa-check\"></i>\r\n </div>\r\n <div class=\"button remove\" (click)=\"handleRemoveClick()\" *ngIf=\"mode == 'new'\">\r\n <i class=\"far fa-times\"></i>\r\n </div>\r\n</div>" }]
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import { AXConfig, AXDateTime } from '@acorex/core';
|
|
2
|
+
import { Component, ElementRef, EventEmitter, Input, Output, QueryList, ViewChild, ViewChildren } from '@angular/core';
|
|
3
|
+
import * as _ from 'lodash';
|
|
4
|
+
import { AXDropdownComponent } from '../dropdown/dropdown.component';
|
|
5
|
+
import { AXPropertyEditorRendererDirective } from '../property-editor/property-editor-renderer.directive';
|
|
6
|
+
import { AXValidationFormComponent } from '../validation/validation-form.component';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "../dropdown/dropdown.component";
|
|
9
|
+
import * as i2 from "../validation/validation-form.component";
|
|
10
|
+
import * as i3 from "../label/label.component";
|
|
11
|
+
import * as i4 from "../button/button.component";
|
|
12
|
+
import * as i5 from "@angular/common";
|
|
13
|
+
import * as i6 from "../property-editor/property-editor-renderer.directive";
|
|
14
|
+
import * as i7 from "@acorex/core";
|
|
15
|
+
export class AXSearchBarComponent {
|
|
16
|
+
constructor(ref) {
|
|
17
|
+
this.ref = ref;
|
|
18
|
+
this.size = 'md';
|
|
19
|
+
this.disabled = false;
|
|
20
|
+
this.fitParent = false;
|
|
21
|
+
this.dropdownWidth = '600px';
|
|
22
|
+
this.rtl = AXConfig.get('layout.rtl');
|
|
23
|
+
this.onValueChange = new EventEmitter();
|
|
24
|
+
this.onSearchValue = new EventEmitter();
|
|
25
|
+
this._items = [];
|
|
26
|
+
this._filterItems = [];
|
|
27
|
+
this._filterItemsClone = [];
|
|
28
|
+
this._defultValueCount = [];
|
|
29
|
+
this._context = {};
|
|
30
|
+
}
|
|
31
|
+
set items(v) {
|
|
32
|
+
this._defultValueCount = v.filter((x) => x.value);
|
|
33
|
+
v.forEach((el) => {
|
|
34
|
+
el.property.uniqueNumber = Math.random();
|
|
35
|
+
if (el.value != null) {
|
|
36
|
+
this._filterItems.push({
|
|
37
|
+
name: el.property.name,
|
|
38
|
+
title: el.property.title,
|
|
39
|
+
textValue: this._handleTextValue(el),
|
|
40
|
+
value: el.value ? this._handleDefultVlaue(el) : null,
|
|
41
|
+
component: el
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
this._items = _.chain(v)
|
|
46
|
+
.groupBy((x) => x.property.row)
|
|
47
|
+
.map((value, key) => ({ row: key, items: value }))
|
|
48
|
+
.value();
|
|
49
|
+
}
|
|
50
|
+
clearItem(name) {
|
|
51
|
+
this._editors.find((x) => x.property.property.name === name).clear();
|
|
52
|
+
}
|
|
53
|
+
refresh() {
|
|
54
|
+
this._defultValueCount = [];
|
|
55
|
+
this._filterItems = [];
|
|
56
|
+
this._filterItemsClone = [];
|
|
57
|
+
this.items = this._items[0].items;
|
|
58
|
+
}
|
|
59
|
+
handleButtonClick() {
|
|
60
|
+
this.dropdown.toggle();
|
|
61
|
+
}
|
|
62
|
+
async handleValueChange(e) {
|
|
63
|
+
await this._handleInitVlaue(e);
|
|
64
|
+
this.onValueChange.emit(e);
|
|
65
|
+
}
|
|
66
|
+
handleItemRemoveClick(item) {
|
|
67
|
+
this._editors.forEach((e) => {
|
|
68
|
+
if (e.property.property.name == item.name) {
|
|
69
|
+
e.clear();
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
this._filterItems = this._filterItems.filter((el) => el.name != item.name);
|
|
73
|
+
}
|
|
74
|
+
search() {
|
|
75
|
+
this.form.validate().then((c) => {
|
|
76
|
+
if (c.result) {
|
|
77
|
+
this._filterItems = JSON.parse(JSON.stringify(this._filterItemsClone.filter((el) => el.value != null && el.value != '')));
|
|
78
|
+
this.handleButtonClick();
|
|
79
|
+
this.onSearchValue.emit(this._filterItems);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
clear() {
|
|
84
|
+
this._editors.forEach((e) => {
|
|
85
|
+
e.clear();
|
|
86
|
+
});
|
|
87
|
+
this._filterItems = [];
|
|
88
|
+
this._filterItemsClone = [];
|
|
89
|
+
this.handleButtonClick();
|
|
90
|
+
this.onSearchValue.emit(this._filterItems);
|
|
91
|
+
}
|
|
92
|
+
renderCol(e) {
|
|
93
|
+
let className = [];
|
|
94
|
+
if (typeof e == 'number') {
|
|
95
|
+
className.push(`col-${e}`);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
for (const key in e) {
|
|
99
|
+
switch (key) {
|
|
100
|
+
case 'lg':
|
|
101
|
+
className.push(`col-lg-${e[key]}`);
|
|
102
|
+
break;
|
|
103
|
+
case 'md':
|
|
104
|
+
className.push(`col-md-${e[key]}`);
|
|
105
|
+
break;
|
|
106
|
+
case 'sm':
|
|
107
|
+
className.push(`col-sm-${e[key]}`);
|
|
108
|
+
break;
|
|
109
|
+
case 'xs':
|
|
110
|
+
className.push(`col-xs-${e[key]}`);
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return className.toString().replace(/,/g, ' ');
|
|
116
|
+
}
|
|
117
|
+
_handleShowTitleSelected(item) {
|
|
118
|
+
if (item.title) {
|
|
119
|
+
return item.title + ':';
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
_handleShowValueSelected(item) {
|
|
123
|
+
if (item.component.property.editorClass === 'ax/editors/check') {
|
|
124
|
+
return item.component.property.editorOptions.label;
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
return item.textValue;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
ngOnInit() { }
|
|
131
|
+
ngAfterViewInit() {
|
|
132
|
+
setTimeout(() => {
|
|
133
|
+
if (!this.dropdown.dropdownWidth) {
|
|
134
|
+
this.dropdown.dropdownWidth = '600px';
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
_handleTextValue(dataItem) {
|
|
139
|
+
let text = '';
|
|
140
|
+
if (Array.isArray(dataItem.value)) {
|
|
141
|
+
if (dataItem.value.length) {
|
|
142
|
+
dataItem.value.forEach((element, index) => {
|
|
143
|
+
text +=
|
|
144
|
+
index === dataItem.value.length - 1
|
|
145
|
+
? element[dataItem.property.editorOptions.textField]
|
|
146
|
+
: element[dataItem.property.editorOptions.textField] + ',';
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
return text;
|
|
150
|
+
}
|
|
151
|
+
else if (dataItem.property.editorClass === 'ax/editors/date') {
|
|
152
|
+
if (dataItem.value) {
|
|
153
|
+
return new AXDateTime(dataItem.value, 'jalali').format('yyyy/MM/DD');
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
async _handleDefultVlaue(dataItem) {
|
|
164
|
+
await this._handleInitVlaue(dataItem);
|
|
165
|
+
this._filterItems = JSON.parse(JSON.stringify(this._filterItemsClone.filter((el) => el.value != null && el.value != '')));
|
|
166
|
+
if (this._filterItems.length === this._defultValueCount.length) {
|
|
167
|
+
this.onSearchValue.emit(this._filterItems);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
async _handleInitVlaue(e) {
|
|
171
|
+
let value = [];
|
|
172
|
+
let text = [];
|
|
173
|
+
if (e.property.editorOptions?.valueField && e.value != null) {
|
|
174
|
+
if (e.property.editorOptions.returnAllData) {
|
|
175
|
+
value = e.value;
|
|
176
|
+
text = await this._handleTextValue(e);
|
|
177
|
+
}
|
|
178
|
+
else if (e.property.editorOptions?.mode == 'multiple') {
|
|
179
|
+
e.value.forEach((element) => {
|
|
180
|
+
value.push(element[e.property.editorOptions.valueField]);
|
|
181
|
+
text.push(element[e.property.editorOptions.textField]);
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
if (e.value.length) {
|
|
186
|
+
value = e.value[0][e.property.editorOptions.valueField];
|
|
187
|
+
text = e.value[0][e.property.editorOptions.textField];
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
value = e.value;
|
|
193
|
+
text = e.value;
|
|
194
|
+
}
|
|
195
|
+
const findEl = this._filterItemsClone.find((el) => el.uniqueNumber == e.property.uniqueNumber);
|
|
196
|
+
if (findEl) {
|
|
197
|
+
findEl.value = value;
|
|
198
|
+
findEl.textValue = e.property.editorClass === 'ax/editors/date' ? new AXDateTime(text, 'jalali').format('yyyy/MM/DD') : text;
|
|
199
|
+
}
|
|
200
|
+
else if (e.value != null) {
|
|
201
|
+
this._filterItemsClone.push({
|
|
202
|
+
name: e.property.name,
|
|
203
|
+
title: e.property.title,
|
|
204
|
+
uniqueNumber: e.property.uniqueNumber,
|
|
205
|
+
value,
|
|
206
|
+
textValue: e.property.editorClass === 'ax/editors/date' ? new AXDateTime(text, 'jalali').format('yyyy/MM/DD') : text,
|
|
207
|
+
component: e,
|
|
208
|
+
filterOptions: {
|
|
209
|
+
filters: e.property?.filterOptions?.filters ? e.property.filterOptions.filters : [],
|
|
210
|
+
logic: e.property?.filterOptions?.logic ? e.property.filterOptions.logic : 'and',
|
|
211
|
+
ignoreCase: e.property?.filterOptions?.ignoreCase ? e.property.filterOptions.ignoreCase : true,
|
|
212
|
+
joinType: e.property?.filterOptions?.joinType ? e.property.filterOptions.joinType : 'INNER',
|
|
213
|
+
operator: e.property?.filterOptions?.operator ? e.property.filterOptions.operator : null,
|
|
214
|
+
truncateDate: e.property?.filterOptions?.truncateDate ? e.property.filterOptions.truncateDate : true
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
AXSearchBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXSearchBarComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
221
|
+
AXSearchBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXSearchBarComponent, selector: "ax-search-bar", inputs: { size: "size", disabled: "disabled", fitParent: "fitParent", dropdownWidth: "dropdownWidth", rtl: "rtl", items: "items" }, outputs: { onValueChange: "onValueChange", onSearchValue: "onSearchValue" }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }, { propertyName: "form", first: true, predicate: AXValidationFormComponent, descendants: true }, { propertyName: "_editors", predicate: AXPropertyEditorRendererDirective, descendants: true }], ngImport: i0, template: "<div>\r\n <ax-drop-down [fitParent]=\"fitParent\" [dropdownWidth]=\"dropdownWidth\" [size]=\"size\" [showDropDownButton]=\"false\"\r\n icon=\"far fa-sliders-h\" #dropdown maxHeight=\"unset\">\r\n <ng-container start>\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n </ng-container>\r\n <ng-container header>\r\n <div class=\"ax chips-container\">\r\n <div class=\"chips\" *ngFor=\"let item of _filterItems\">\r\n <span class=\"chips-text\" style=\"direction:rtl;\">\r\n <b>{{_handleShowTitleSelected(item)}}</b> {{_handleShowValueSelected(item)}}\r\n </span>\r\n <span class=\"close-icon\" (click)=\"handleItemRemoveClick(item)\">\r\n </span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container panel>\r\n <div class=\"panel-box\">\r\n <ax-validation-form #form>\r\n <ng-container *ngFor=\"let item of _items\">\r\n <div class=\"row\">\r\n <ng-container *ngFor=\"let prop of item.items\">\r\n <div *ngIf=\"prop.property.visible != false\" class=\"{{renderCol(prop.property.col)}}\">\r\n <div>\r\n <ax-label>{{prop.property.title}}</ax-label>\r\n <ng-container ax-property-editor-renderer [validationForm]=\"form\"\r\n [property]=\"prop\" [context]=\"_context\"\r\n (onValueChange)=\"handleValueChange($event)\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <div class=\"footer-button\">\r\n <ax-button (click)=\"search()\">{{'common.search' | trans}}</ax-button>\r\n <ax-button type=\"blank danger\" (click)=\"clear()\">{{'dataGrid.clearFilter' | trans}}</ax-button>\r\n </div>\r\n </ax-validation-form>\r\n </div>\r\n </ng-container>\r\n <ng-container end>\r\n <ax-button end icon=\"far fa-sliders-h icon\" type=\"light blank\" [disabled]=\"disabled\" [size]=\"size\"\r\n [tabIndex]=\"-1\" (click)=\"handleButtonClick()\">{{'common.search' | trans}}</ax-button>\r\n </ng-container>\r\n\r\n </ax-drop-down>\r\n</div>", styles: [".ax.chips-container{height:100%}.panel-box{padding:1rem}.panel-box .footer-button{margin-top:1rem;display:flex;align-items:center;gap:.5rem}\n"], components: [{ type: i1.AXDropdownComponent, selector: "ax-drop-down", inputs: ["rtl", "readonly", "loading", "dropdownWidth"], outputs: ["dropdownToggle", "onButtonClick"] }, { type: i2.AXValidationFormComponent, selector: "ax-validation-form", inputs: ["validateOn"], outputs: ["onInit"] }, { type: i3.AXLabelComponent, selector: "ax-label", inputs: ["size"] }, { type: i4.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.AXPropertyEditorRendererDirective, selector: "[ax-property-editor-renderer]", inputs: ["property", "validationForm", "context", "host", "groupId"], outputs: ["onValueChange"] }], pipes: { "trans": i7.AXTranslatorPipe } });
|
|
222
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXSearchBarComponent, decorators: [{
|
|
223
|
+
type: Component,
|
|
224
|
+
args: [{ selector: 'ax-search-bar', template: "<div>\r\n <ax-drop-down [fitParent]=\"fitParent\" [dropdownWidth]=\"dropdownWidth\" [size]=\"size\" [showDropDownButton]=\"false\"\r\n icon=\"far fa-sliders-h\" #dropdown maxHeight=\"unset\">\r\n <ng-container start>\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n </ng-container>\r\n <ng-container header>\r\n <div class=\"ax chips-container\">\r\n <div class=\"chips\" *ngFor=\"let item of _filterItems\">\r\n <span class=\"chips-text\" style=\"direction:rtl;\">\r\n <b>{{_handleShowTitleSelected(item)}}</b> {{_handleShowValueSelected(item)}}\r\n </span>\r\n <span class=\"close-icon\" (click)=\"handleItemRemoveClick(item)\">\r\n </span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container panel>\r\n <div class=\"panel-box\">\r\n <ax-validation-form #form>\r\n <ng-container *ngFor=\"let item of _items\">\r\n <div class=\"row\">\r\n <ng-container *ngFor=\"let prop of item.items\">\r\n <div *ngIf=\"prop.property.visible != false\" class=\"{{renderCol(prop.property.col)}}\">\r\n <div>\r\n <ax-label>{{prop.property.title}}</ax-label>\r\n <ng-container ax-property-editor-renderer [validationForm]=\"form\"\r\n [property]=\"prop\" [context]=\"_context\"\r\n (onValueChange)=\"handleValueChange($event)\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <div class=\"footer-button\">\r\n <ax-button (click)=\"search()\">{{'common.search' | trans}}</ax-button>\r\n <ax-button type=\"blank danger\" (click)=\"clear()\">{{'dataGrid.clearFilter' | trans}}</ax-button>\r\n </div>\r\n </ax-validation-form>\r\n </div>\r\n </ng-container>\r\n <ng-container end>\r\n <ax-button end icon=\"far fa-sliders-h icon\" type=\"light blank\" [disabled]=\"disabled\" [size]=\"size\"\r\n [tabIndex]=\"-1\" (click)=\"handleButtonClick()\">{{'common.search' | trans}}</ax-button>\r\n </ng-container>\r\n\r\n </ax-drop-down>\r\n</div>", styles: [".ax.chips-container{height:100%}.panel-box{padding:1rem}.panel-box .footer-button{margin-top:1rem;display:flex;align-items:center;gap:.5rem}\n"] }]
|
|
225
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { dropdown: [{
|
|
226
|
+
type: ViewChild,
|
|
227
|
+
args: ['dropdown', { static: true }]
|
|
228
|
+
}], _editors: [{
|
|
229
|
+
type: ViewChildren,
|
|
230
|
+
args: [AXPropertyEditorRendererDirective]
|
|
231
|
+
}], form: [{
|
|
232
|
+
type: ViewChild,
|
|
233
|
+
args: [AXValidationFormComponent]
|
|
234
|
+
}], size: [{
|
|
235
|
+
type: Input
|
|
236
|
+
}], disabled: [{
|
|
237
|
+
type: Input
|
|
238
|
+
}], fitParent: [{
|
|
239
|
+
type: Input
|
|
240
|
+
}], dropdownWidth: [{
|
|
241
|
+
type: Input
|
|
242
|
+
}], rtl: [{
|
|
243
|
+
type: Input
|
|
244
|
+
}], items: [{
|
|
245
|
+
type: Input
|
|
246
|
+
}], onValueChange: [{
|
|
247
|
+
type: Output
|
|
248
|
+
}], onSearchValue: [{
|
|
249
|
+
type: Output
|
|
250
|
+
}] } });
|
|
251
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3NlYXJjaC1iYXIvc2VhcmNoLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3NlYXJjaC1iYXIvc2VhcmNoLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUUxRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7O0FBaUJwRixNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQW9CLEdBQStCO1FBQS9CLFFBQUcsR0FBSCxHQUFHLENBQTRCO1FBTW5ELFNBQUksR0FBa0IsSUFBSSxDQUFDO1FBRzNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUczQixrQkFBYSxHQUFXLE9BQU8sQ0FBQztRQUdoQyxRQUFHLEdBQVksUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQXdCMUMsa0JBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUd0RCxrQkFBYSxHQUF5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USxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU87b0JBQzNGLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSTtvQkFDeEYsWUFBWSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJO2lCQUNyRzthQUNGLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7a0hBbE9VLG9CQUFvQjtzR0FBcEIsb0JBQW9CLGlaQUlwQix5QkFBeUIsOERBRHRCLGlDQUFpQyxnREMzQmpELGdxRkFnRE07NEZEeEJPLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxlQUFlO2lHQU1nQixRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ1UsUUFBUTtzQkFBeEQsWUFBWTt1QkFBQyxpQ0FBaUM7Z0JBQ1QsSUFBSTtzQkFBekMsU0FBUzt1QkFBQyx5QkFBeUI7Z0JBR3BDLElBQUk7c0JBREgsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixHQUFHO3NCQURGLEtBQUs7Z0JBSUssS0FBSztzQkFEZixLQUFLO2dCQXNCTixhQUFhO3NCQURaLE1BQU07Z0JBSVAsYUFBYTtzQkFEWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb25maWcsIEFYRGF0ZVRpbWUgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgQVhFbGVtZW50U2l6ZSB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XHJcbmltcG9ydCB7IEFYRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWFByb3BlcnR5RWRpdG9yUmVuZGVyZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9wcm9wZXJ0eS1lZGl0b3IvcHJvcGVydHktZWRpdG9yLXJlbmRlcmVyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEFYUHJvcGVydHlDb2xEZWYsIEFYUHJvcGVydHlDb25maWcsIEFYUHJvcGVyeUVkaXRvclZhbHVlQ2hhbmdlRXZlbnQsIEZpbHRlck1vZGVsIH0gZnJvbSAnLi4vcHJvcGVydHktZWRpdG9yL3Byb3BlcnR5LWVkaXRvci5jbGFzcyc7XHJcbmltcG9ydCB7IEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQgfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb24tZm9ybS5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJUZXh0SXRlbXNNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdmFsdWU6IGFueTtcclxuICB0ZXh0VmFsdWU6IHN0cmluZztcclxuICBmaWx0ZXJPcHRpb25zPzogRmlsdGVyTW9kZWw7XHJcbiAgY29tcG9uZW50OiBBWFByb3BlcnR5Q29uZmlnO1xyXG4gIHVuaXF1ZU51bWJlcj86IG51bWJlcjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC1zZWFyY2gtYmFyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLWJhci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFNlYXJjaEJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+KSB7fVxyXG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJywgeyBzdGF0aWM6IHRydWUgfSkgZHJvcGRvd246IEFYRHJvcGRvd25Db21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZHJlbihBWFByb3BlcnR5RWRpdG9yUmVuZGVyZXJEaXJlY3RpdmUpIF9lZGl0b3JzOiBRdWVyeUxpc3Q8QVhQcm9wZXJ0eUVkaXRvclJlbmRlcmVyRGlyZWN0aXZlPjtcclxuICBAVmlld0NoaWxkKEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQpIGZvcm06IEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2l6ZTogQVhFbGVtZW50U2l6ZSA9ICdtZCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBmaXRQYXJlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBkcm9wZG93bldpZHRoOiBzdHJpbmcgPSAnNjAwcHgnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHJ0bDogYm9vbGVhbiA9IEFYQ29uZmlnLmdldCgnbGF5b3V0LnJ0bCcpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgaXRlbXModjogQVhQcm9wZXJ0eUNvbmZpZ1tdKSB7XHJcbiAgICB0aGlzLl9kZWZ1bHRWYWx1ZUNvdW50ID0gdi5maWx0ZXIoKHgpID0+IHgudmFsdWUpO1xyXG4gICAgdi5mb3JFYWNoKChlbCkgPT4ge1xyXG4gICAgICBlbC5wcm9wZXJ0eS51bmlxdWVOdW1iZXIgPSBNYXRoLnJhbmRvbSgpO1xyXG4gICAgICBpZiAoZWwudmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuX2ZpbHRlckl0ZW1zLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogZWwucHJvcGVydHkubmFtZSxcclxuICAgICAgICAgIHRpdGxlOiBlbC5wcm9wZXJ0eS50aXRsZSxcclxuICAgICAgICAgIHRleHRWYWx1ZTogdGhpcy5faGFuZGxlVGV4dFZhbHVlKGVsKSxcclxuICAgICAgICAgIHZhbHVlOiBlbC52YWx1ZSA/IHRoaXMuX2hhbmRsZURlZnVsdFZsYXVlKGVsKSA6IG51bGwsXHJcbiAgICAgICAgICBjb21wb25lbnQ6IGVsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5faXRlbXMgPSBfLmNoYWluKHYpXHJcbiAgICAgIC5ncm91cEJ5KCh4KSA9PiB4LnByb3BlcnR5LnJvdylcclxuICAgICAgLm1hcCgodmFsdWUsIGtleSkgPT4gKHsgcm93OiBrZXksIGl0ZW1zOiB2YWx1ZSB9KSlcclxuICAgICAgLnZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KClcclxuICBvblZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgb25TZWFyY2hWYWx1ZTogRXZlbnRFbWl0dGVyPEZpbHRlclRleHRJdGVtc01vZGVsW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBfaXRlbXM6IGFueVtdID0gW107XHJcbiAgX2ZpbHRlckl0ZW1zOiBGaWx0ZXJUZXh0SXRlbXNNb2RlbFtdID0gW107XHJcbiAgX2ZpbHRlckl0ZW1zQ2xvbmU6IEZpbHRlclRleHRJdGVtc01vZGVsW10gPSBbXTtcclxuICBfZGVmdWx0VmFsdWVDb3VudDogYW55ID0gW107XHJcbiAgX2NvbnRleHQ6IGFueSA9IHt9O1xyXG5cclxuICBwdWJsaWMgY2xlYXJJdGVtKG5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fZWRpdG9ycy5maW5kKCh4KSA9PiB4LnByb3BlcnR5LnByb3BlcnR5Lm5hbWUgPT09IG5hbWUpLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVmcmVzaCgpIHtcclxuICAgIHRoaXMuX2RlZnVsdFZhbHVlQ291bnQgPSBbXTtcclxuICAgIHRoaXMuX2ZpbHRlckl0ZW1zID0gW107XHJcbiAgICB0aGlzLl9maWx0ZXJJdGVtc0Nsb25lID0gW107XHJcbiAgICB0aGlzLml0ZW1zID0gdGhpcy5faXRlbXNbMF0uaXRlbXM7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVCdXR0b25DbGljaygpIHtcclxuICAgIHRoaXMuZHJvcGRvd24udG9nZ2xlKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBoYW5kbGVWYWx1ZUNoYW5nZShlOiBBWFByb3BlcnlFZGl0b3JWYWx1ZUNoYW5nZUV2ZW50KSB7XHJcbiAgICBhd2FpdCB0aGlzLl9oYW5kbGVJbml0VmxhdWUoZSk7XHJcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2UuZW1pdChlKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUl0ZW1SZW1vdmVDbGljayhpdGVtOiBGaWx0ZXJUZXh0SXRlbXNNb2RlbCkge1xyXG4gICAgdGhpcy5fZWRpdG9ycy5mb3JFYWNoKChlKSA9PiB7XHJcbiAgICAgIGlmIChlLnByb3BlcnR5LnByb3BlcnR5Lm5hbWUgPT0gaXRlbS5uYW1lKSB7XHJcbiAgICAgICAgZS5jbGVhcigpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2ZpbHRlckl0ZW1zID0gdGhpcy5fZmlsdGVySXRlbXMuZmlsdGVyKChlbCkgPT4gZWwubmFtZSAhPSBpdGVtLm5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlYXJjaCgpIHtcclxuICAgIHRoaXMuZm9ybS52YWxpZGF0ZSgpLnRoZW4oKGMpID0+IHtcclxuICAgICAgaWYgKGMucmVzdWx0KSB7XHJcbiAgICAgICAgdGhpcy5fZmlsdGVySXRlbXMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuX2ZpbHRlckl0ZW1zQ2xvbmUuZmlsdGVyKChlbCkgPT4gZWwudmFsdWUgIT0gbnVsbCAmJiBlbC52YWx1ZSAhPSAnJykpKTtcclxuICAgICAgICB0aGlzLmhhbmRsZUJ1dHRvbkNsaWNrKCk7XHJcbiAgICAgICAgdGhpcy5vblNlYXJjaFZhbHVlLmVtaXQodGhpcy5fZmlsdGVySXRlbXMpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNsZWFyKCkge1xyXG4gICAgdGhpcy5fZWRpdG9ycy5mb3JFYWNoKChlKSA9PiB7XHJcbiAgICAgIGUuY2xlYXIoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fZmlsdGVySXRlbXMgPSBbXTtcclxuICAgIHRoaXMuX2ZpbHRlckl0ZW1zQ2xvbmUgPSBbXTtcclxuICAgIHRoaXMuaGFuZGxlQnV0dG9uQ2xpY2soKTtcclxuICAgIHRoaXMub25TZWFyY2hWYWx1ZS5lbWl0KHRoaXMuX2ZpbHRlckl0ZW1zKTtcclxuICB9XHJcblxyXG4gIHJlbmRlckNvbChlOiBudW1iZXIgfCBBWFByb3BlcnR5Q29sRGVmKSB7XHJcbiAgICBsZXQgY2xhc3NOYW1lOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgaWYgKHR5cGVvZiBlID09ICdudW1iZXInKSB7XHJcbiAgICAgIGNsYXNzTmFtZS5wdXNoKGBjb2wtJHtlfWApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZm9yIChjb25zdCBrZXkgaW4gZSkge1xyXG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XHJcbiAgICAgICAgICBjYXNlICdsZyc6XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZS5wdXNoKGBjb2wtbGctJHtlW2tleV19YCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnbWQnOlxyXG4gICAgICAgICAgICBjbGFzc05hbWUucHVzaChgY29sLW1kLSR7ZVtrZXldfWApO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgJ3NtJzpcclxuICAgICAgICAgICAgY2xhc3NOYW1lLnB1c2goYGNvbC1zbS0ke2Vba2V5XX1gKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICd4cyc6XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZS5wdXNoKGBjb2wteHMtJHtlW2tleV19YCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNsYXNzTmFtZS50b1N0cmluZygpLnJlcGxhY2UoLywvZywgJyAnKTtcclxuICB9XHJcblxyXG4gIF9oYW5kbGVTaG93VGl0bGVTZWxlY3RlZChpdGVtKSB7XHJcbiAgICBpZiAoaXRlbS50aXRsZSkge1xyXG4gICAgICByZXR1cm4gaXRlbS50aXRsZSArICc6JztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIF9oYW5kbGVTaG93VmFsdWVTZWxlY3RlZChpdGVtKSB7XHJcbiAgICBpZiAoaXRlbS5jb21wb25lbnQucHJvcGVydHkuZWRpdG9yQ2xhc3MgPT09ICdheC9lZGl0b3JzL2NoZWNrJykge1xyXG4gICAgICByZXR1cm4gaXRlbS5jb21wb25lbnQucHJvcGVydHkuZWRpdG9yT3B0aW9ucy5sYWJlbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBpdGVtLnRleHRWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge31cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5kcm9wZG93bi5kcm9wZG93bldpZHRoKSB7XHJcbiAgICAgICAgdGhpcy5kcm9wZG93bi5kcm9wZG93bldpZHRoID0gJzYwMHB4JztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2hhbmRsZVRleHRWYWx1ZShkYXRhSXRlbTogYW55KSB7XHJcbiAgICBsZXQgdGV4dCA9ICcnO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YUl0ZW0udmFsdWUpKSB7XHJcbiAgICAgIGlmIChkYXRhSXRlbS52YWx1ZS5sZW5ndGgpIHtcclxuICAgICAgICBkYXRhSXRlbS52YWx1ZS5mb3JFYWNoKChlbGVtZW50LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgdGV4dCArPVxyXG4gICAgICAgICAgICBpbmRleCA9PT0gZGF0YUl0ZW0udmFsdWUubGVuZ3RoIC0gMVxyXG4gICAgICAgICAgICAgID8gZWxlbWVudFtkYXRhSXRlbS5wcm9wZXJ0eS5lZGl0b3JPcHRpb25zLnRleHRGaWVsZF1cclxuICAgICAgICAgICAgICA6IGVsZW1lbnRbZGF0YUl0ZW0ucHJvcGVydHkuZWRpdG9yT3B0aW9ucy50ZXh0RmllbGRdICsgJywnO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0ZXh0O1xyXG4gICAgfSBlbHNlIGlmIChkYXRhSXRlbS5wcm9wZXJ0eS5lZGl0b3JDbGFzcyA9PT0gJ2F4L2VkaXRvcnMvZGF0ZScpIHtcclxuICAgICAgaWYgKGRhdGFJdGVtLnZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGRhdGFJdGVtLnZhbHVlLCAnamFsYWxpJykuZm9ybWF0KCd5eXl5L01NL0REJyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9oYW5kbGVEZWZ1bHRWbGF1ZShkYXRhSXRlbTogYW55KSB7XHJcbiAgICBhd2FpdCB0aGlzLl9oYW5kbGVJbml0VmxhdWUoZGF0YUl0ZW0pO1xyXG4gICAgdGhpcy5fZmlsdGVySXRlbXMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuX2ZpbHRlckl0ZW1zQ2xvbmUuZmlsdGVyKChlbCkgPT4gZWwudmFsdWUgIT0gbnVsbCAmJiBlbC52YWx1ZSAhPSAnJykpKTtcclxuICAgIGlmICh0aGlzLl9maWx0ZXJJdGVtcy5sZW5ndGggPT09IHRoaXMuX2RlZnVsdFZhbHVlQ291bnQubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMub25TZWFyY2hWYWx1ZS5lbWl0KHRoaXMuX2ZpbHRlckl0ZW1zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX2hhbmRsZUluaXRWbGF1ZShlKSB7XHJcbiAgICBsZXQgdmFsdWUgPSBbXTtcclxuICAgIGxldCB0ZXh0OiBhbnkgPSBbXTtcclxuICAgIGlmIChlLnByb3BlcnR5LmVkaXRvck9wdGlvbnM/LnZhbHVlRmllbGQgJiYgZS52YWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgIGlmIChlLnByb3BlcnR5LmVkaXRvck9wdGlvbnMucmV0dXJuQWxsRGF0YSkge1xyXG4gICAgICAgIHZhbHVlID0gZS52YWx1ZTtcclxuICAgICAgICB0ZXh0ID0gYXdhaXQgdGhpcy5faGFuZGxlVGV4dFZhbHVlKGUpO1xyXG4gICAgICB9IGVsc2UgaWYgKGUucHJvcGVydHkuZWRpdG9yT3B0aW9ucz8ubW9kZSA9PSAnbXVsdGlwbGUnKSB7XHJcbiAgICAgICAgZS52YWx1ZS5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICB2YWx1ZS5wdXNoKGVsZW1lbnRbZS5wcm9wZXJ0eS5lZGl0b3JPcHRpb25zLnZhbHVlRmllbGRdKTtcclxuICAgICAgICAgIHRleHQucHVzaChlbGVtZW50W2UucHJvcGVydHkuZWRpdG9yT3B0aW9ucy50ZXh0RmllbGRdKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoZS52YWx1ZS5sZW5ndGgpIHtcclxuICAgICAgICAgIHZhbHVlID0gZS52YWx1ZVswXVtlLnByb3BlcnR5LmVkaXRvck9wdGlvbnMudmFsdWVGaWVsZF07XHJcbiAgICAgICAgICB0ZXh0ID0gZS52YWx1ZVswXVtlLnByb3BlcnR5LmVkaXRvck9wdGlvbnMudGV4dEZpZWxkXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhbHVlID0gZS52YWx1ZTtcclxuICAgICAgdGV4dCA9IGUudmFsdWU7XHJcbiAgICB9XHJcbiAgICBjb25zdCBmaW5kRWwgPSB0aGlzLl9maWx0ZXJJdGVtc0Nsb25lLmZpbmQoKGVsKSA9PiBlbC51bmlxdWVOdW1iZXIgPT0gZS5wcm9wZXJ0eS51bmlxdWVOdW1iZXIpO1xyXG4gICAgaWYgKGZpbmRFbCkge1xyXG4gICAgICBmaW5kRWwudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgZmluZEVsLnRleHRWYWx1ZSA9IGUucHJvcGVydHkuZWRpdG9yQ2xhc3MgPT09ICdheC9lZGl0b3JzL2RhdGUnID8gbmV3IEFYRGF0ZVRpbWUodGV4dCwgJ2phbGFsaScpLmZvcm1hdCgneXl5eS9NTS9ERCcpIDogdGV4dDtcclxuICAgIH0gZWxzZSBpZiAoZS52YWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMuX2ZpbHRlckl0ZW1zQ2xvbmUucHVzaCh7XHJcbiAgICAgICAgbmFtZTogZS5wcm9wZXJ0eS5uYW1lLFxyXG4gICAgICAgIHRpdGxlOiBlLnByb3BlcnR5LnRpdGxlLFxyXG4gICAgICAgIHVuaXF1ZU51bWJlcjogZS5wcm9wZXJ0eS51bmlxdWVOdW1iZXIsXHJcbiAgICAgICAgdmFsdWUsXHJcbiAgICAgICAgdGV4dFZhbHVlOiBlLnByb3BlcnR5LmVkaXRvckNsYXNzID09PSAnYXgvZWRpdG9ycy9kYXRlJyA/IG5ldyBBWERhdGVUaW1lKHRleHQsICdqYWxhbGknKS5mb3JtYXQoJ3l5eXkvTU0vREQnKSA6IHRleHQsXHJcbiAgICAgICAgY29tcG9uZW50OiBlLFxyXG4gICAgICAgIGZpbHRlck9wdGlvbnM6IHtcclxuICAgICAgICAgIGZpbHRlcnM6IGUucHJvcGVydHk/LmZpbHRlck9wdGlvbnM/LmZpbHRlcnMgPyBlLnByb3BlcnR5LmZpbHRlck9wdGlvbnMuZmlsdGVycyA6IFtdLFxyXG4gICAgICAgICAgbG9naWM6IGUucHJvcGVydHk/LmZpbHRlck9wdGlvbnM/LmxvZ2ljID8gZS5wcm9wZXJ0eS5maWx0ZXJPcHRpb25zLmxvZ2ljIDogJ2FuZCcsXHJcbiAgICAgICAgICBpZ25vcmVDYXNlOiBlLnByb3BlcnR5Py5maWx0ZXJPcHRpb25zPy5pZ25vcmVDYXNlID8gZS5wcm9wZXJ0eS5maWx0ZXJPcHRpb25zLmlnbm9yZUNhc2UgOiB0cnVlLFxyXG4gICAgICAgICAgam9pblR5cGU6IGUucHJvcGVydHk/LmZpbHRlck9wdGlvbnM/LmpvaW5UeXBlID8gZS5wcm9wZXJ0eS5maWx0ZXJPcHRpb25zLmpvaW5UeXBlIDogJ0lOTkVSJyxcclxuICAgICAgICAgIG9wZXJhdG9yOiBlLnByb3BlcnR5Py5maWx0ZXJPcHRpb25zPy5vcGVyYXRvciA/IGUucHJvcGVydHkuZmlsdGVyT3B0aW9ucy5vcGVyYXRvciA6IG51bGwsXHJcbiAgICAgICAgICB0cnVuY2F0ZURhdGU6IGUucHJvcGVydHk/LmZpbHRlck9wdGlvbnM/LnRydW5jYXRlRGF0ZSA/IGUucHJvcGVydHkuZmlsdGVyT3B0aW9ucy50cnVuY2F0ZURhdGUgOiB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdj5cclxuICAgIDxheC1kcm9wLWRvd24gW2ZpdFBhcmVudF09XCJmaXRQYXJlbnRcIiBbZHJvcGRvd25XaWR0aF09XCJkcm9wZG93bldpZHRoXCIgW3NpemVdPVwic2l6ZVwiIFtzaG93RHJvcERvd25CdXR0b25dPVwiZmFsc2VcIlxyXG4gICAgICAgIGljb249XCJmYXIgZmEtc2xpZGVycy1oXCIgI2Ryb3Bkb3duIG1heEhlaWdodD1cInVuc2V0XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBzdGFydD5cclxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3N0YXJ0XVwiPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBoZWFkZXI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheCBjaGlwcy1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwc1wiICpuZ0Zvcj1cImxldCBpdGVtIG9mIF9maWx0ZXJJdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcHMtdGV4dFwiIHN0eWxlPVwiZGlyZWN0aW9uOnJ0bDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGI+e3tfaGFuZGxlU2hvd1RpdGxlU2VsZWN0ZWQoaXRlbSl9fTwvYj4ge3tfaGFuZGxlU2hvd1ZhbHVlU2VsZWN0ZWQoaXRlbSl9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNsb3NlLWljb25cIiAoY2xpY2spPVwiaGFuZGxlSXRlbVJlbW92ZUNsaWNrKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgcGFuZWw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbC1ib3hcIj5cclxuICAgICAgICAgICAgICAgIDxheC12YWxpZGF0aW9uLWZvcm0gI2Zvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcHJvcCBvZiBpdGVtLml0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInByb3AucHJvcGVydHkudmlzaWJsZSAhPSBmYWxzZVwiIGNsYXNzPVwie3tyZW5kZXJDb2wocHJvcC5wcm9wZXJ0eS5jb2wpfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1sYWJlbD57e3Byb3AucHJvcGVydHkudGl0bGV9fTwvYXgtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGF4LXByb3BlcnR5LWVkaXRvci1yZW5kZXJlciBbdmFsaWRhdGlvbkZvcm1dPVwiZm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Byb3BlcnR5XT1cInByb3BcIiBbY29udGV4dF09XCJfY29udGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2UpPVwiaGFuZGxlVmFsdWVDaGFuZ2UoJGV2ZW50KVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtYnV0dG9uIChjbGljayk9XCJzZWFyY2goKVwiPnt7J2NvbW1vbi5zZWFyY2gnIHwgdHJhbnN9fTwvYXgtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtYnV0dG9uIHR5cGU9XCJibGFuayBkYW5nZXJcIiAoY2xpY2spPVwiY2xlYXIoKVwiPnt7J2RhdGFHcmlkLmNsZWFyRmlsdGVyJyB8IHRyYW5zfX08L2F4LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvYXgtdmFsaWRhdGlvbi1mb3JtPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyIGVuZD5cclxuICAgICAgICAgICAgPGF4LWJ1dHRvbiBlbmQgaWNvbj1cImZhciBmYS1zbGlkZXJzLWggaWNvblwiIHR5cGU9XCJsaWdodCBibGFua1wiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtzaXplXT1cInNpemVcIlxyXG4gICAgICAgICAgICAgICAgW3RhYkluZGV4XT1cIi0xXCIgKGNsaWNrKT1cImhhbmRsZUJ1dHRvbkNsaWNrKClcIj57eydjb21tb24uc2VhcmNoJyB8IHRyYW5zfX08L2F4LWJ1dHRvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8L2F4LWRyb3AtZG93bj5cclxuPC9kaXY+Il19
|