tango-app-ui-store-builder 1.2.16 → 1.2.17
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/esm2022/lib/components/plano-configurations/plano-configurations.component.mjs +18 -7
- package/esm2022/lib/components/plano-tools/allow-edit/allow-edit.component.mjs +4 -3
- package/esm2022/lib/components/plano-tools/cad-files/cad-files.component.mjs +5 -4
- package/esm2022/lib/components/plano-tools/cad-render/cad-render.component.mjs +4 -3
- package/esm2022/lib/components/plano-tools/delete-floor/delete-floor.component.mjs +4 -3
- package/esm2022/lib/components/plano-tools/delete-task/delete-task.component.mjs +4 -3
- package/esm2022/lib/components/plano-tools/layout-touchup/layout-touchup.component.mjs +134 -0
- package/esm2022/lib/components/plano-tools/layout-touchup/touchup-editor/touchup-editor.component.mjs +5103 -0
- package/esm2022/lib/components/plano-tools/modify-fixture-numbers/modify-fixture-numbers.component.mjs +4 -3
- package/esm2022/lib/components/plano-tools/move-bucket/move-bucket.component.mjs +4 -3
- package/esm2022/lib/components/plano-tools/plano-data-export/plano-data-export.component.mjs +4 -3
- package/esm2022/lib/components/plano-tools/plano-migrate/plano-migrate.component.mjs +4 -3
- package/esm2022/lib/components/plano-tools/store-exports/store-exports.component.mjs +4 -3
- package/esm2022/lib/components/plano-tools/swap-template/swap-template.component.mjs +4 -3
- package/esm2022/lib/components/plano-tools/tool-page-header/tool-page-header.component.mjs +22 -0
- package/esm2022/lib/components/plano-tools/tools-parent/tools-parent.component.mjs +27 -8
- package/esm2022/lib/services/store-builder.service.mjs +10 -1
- package/esm2022/lib/tango-store-builder-routing.module.mjs +25 -55
- package/esm2022/lib/tango-store-builder.module.mjs +10 -1
- package/fesm2022/tango-app-ui-store-builder.mjs +5620 -390
- package/fesm2022/tango-app-ui-store-builder.mjs.map +1 -1
- package/lib/components/manage-plano/rollout-table/rollout-table.component.d.ts +4 -4
- package/lib/components/manage-plano/verification-table/verification-table.component.d.ts +5 -5
- package/lib/components/plano-configurations/plano-configurations.component.d.ts +9 -1
- package/lib/components/plano-tools/layout-touchup/layout-touchup.component.d.ts +50 -0
- package/lib/components/plano-tools/layout-touchup/touchup-editor/touchup-editor.component.d.ts +331 -0
- package/lib/components/plano-tools/tool-page-header/tool-page-header.component.d.ts +8 -0
- package/lib/components/plano-tools/tools-parent/tools-parent.component.d.ts +4 -2
- package/lib/services/store-builder.service.d.ts +10 -0
- package/lib/tango-store-builder.module.d.ts +61 -58
- package/package.json +1 -1
|
@@ -9,20 +9,22 @@ export class ToolsParentComponent {
|
|
|
9
9
|
ngbModal;
|
|
10
10
|
router;
|
|
11
11
|
gs;
|
|
12
|
+
pageInfo;
|
|
12
13
|
clientId;
|
|
13
14
|
destroy$ = new Subject();
|
|
14
|
-
constructor(ngbModal, router, gs) {
|
|
15
|
+
constructor(ngbModal, router, gs, pageInfo) {
|
|
15
16
|
this.ngbModal = ngbModal;
|
|
16
17
|
this.router = router;
|
|
17
18
|
this.gs = gs;
|
|
19
|
+
this.pageInfo = pageInfo;
|
|
18
20
|
}
|
|
19
21
|
ngOnInit() {
|
|
22
|
+
this.setPageData();
|
|
20
23
|
this.gs.dataRangeValue
|
|
21
24
|
.pipe(takeUntil(this.destroy$), // Subscription will be cancelled on component destroy.
|
|
22
25
|
debounceTime(200), // To avoid immediate frequent calls.
|
|
23
26
|
filter((data) => !!data), // Filtering null/undefined.
|
|
24
|
-
distinctUntilChanged()
|
|
25
|
-
)
|
|
27
|
+
distinctUntilChanged())
|
|
26
28
|
.subscribe((data) => {
|
|
27
29
|
if (data?.client) {
|
|
28
30
|
this.clientId = data?.client;
|
|
@@ -33,6 +35,23 @@ export class ToolsParentComponent {
|
|
|
33
35
|
}
|
|
34
36
|
});
|
|
35
37
|
}
|
|
38
|
+
setPageData() {
|
|
39
|
+
this.pageInfo.setTitle("Plano Tools");
|
|
40
|
+
// this.pageInfo.setBreadcrumbs([
|
|
41
|
+
// {
|
|
42
|
+
// title: "Planogram",
|
|
43
|
+
// path: "/manage/planogram/manage-planograms",
|
|
44
|
+
// isActive: false,
|
|
45
|
+
// isSeparator: false,
|
|
46
|
+
// },
|
|
47
|
+
// {
|
|
48
|
+
// title: "",
|
|
49
|
+
// path: "",
|
|
50
|
+
// isActive: false,
|
|
51
|
+
// isSeparator: true,
|
|
52
|
+
// },
|
|
53
|
+
// ]);
|
|
54
|
+
}
|
|
36
55
|
onClickCreateFixtureTemplate() {
|
|
37
56
|
const modelRef = this.ngbModal.open(CreateFixtureTemplateComponent, {
|
|
38
57
|
centered: true,
|
|
@@ -49,11 +68,11 @@ export class ToolsParentComponent {
|
|
|
49
68
|
this.destroy$.next();
|
|
50
69
|
this.destroy$.complete();
|
|
51
70
|
}
|
|
52
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolsParentComponent, deps: [{ token: i1.NgbModal }, { token: i2.Router }, { token: i3.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
53
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ToolsParentComponent, selector: "lib-tools-parent", ngImport: i0, template: "<div class=\"
|
|
71
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolsParentComponent, deps: [{ token: i1.NgbModal }, { token: i2.Router }, { token: i3.GlobalStateService }, { token: i3.PageInfoService }], target: i0.ɵɵFactoryTarget.Component });
|
|
72
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ToolsParentComponent, selector: "lib-tools-parent", ngImport: i0, template: "<div class=\"plano-tools-hub\">\n <div class=\"hub-header mb-4\">\n <h4 class=\"mb-1\">Plano Tools</h4>\n <p class=\"text-muted small mb-0\">\n Utilities for managing planograms, layouts, exports and templates.\n </p>\n </div>\n\n <div class=\"tool-section mb-4\">\n <h6 class=\"section-title\">Export & Inspect</h6>\n <div class=\"card-grid\">\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/migrate\">\n <div class=\"icon\"><i class=\"bi bi-images\"></i></div>\n <div class=\"title\">Download Layout Images</div>\n <div class=\"desc\">Export layout images store by store.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/cad-render\">\n <div class=\"icon\"><i class=\"bi bi-bounding-box\"></i></div>\n <div class=\"title\">Check CAD Output</div>\n <div class=\"desc\">Paste CAD data and preview the parsed layout.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/cad-files\">\n <div class=\"icon\"><i class=\"bi bi-folder2-open\"></i></div>\n <div class=\"title\">CAD Files</div>\n <div class=\"desc\">List uploaded CAD & Kissflow files for a store.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/data-export\">\n <div class=\"icon\"><i class=\"bi bi-database-down\"></i></div>\n <div class=\"title\">Data Export</div>\n <div class=\"desc\">Query planogram fixtures and export as Excel.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/store-exports\">\n <div class=\"icon\"><i class=\"bi bi-file-earmark-spreadsheet\"></i></div>\n <div class=\"title\">MBQ & Order</div>\n <div class=\"desc\">Generate per-store fixture export bundles.</div>\n </a>\n </div>\n </div>\n\n <div class=\"tool-section mb-4\">\n <h6 class=\"section-title\">Edit & Modify</h6>\n <div class=\"card-grid\">\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/allow-edit\">\n <div class=\"icon\"><i class=\"bi bi-pencil-square\"></i></div>\n <div class=\"title\">Allow Edit</div>\n <div class=\"desc\">Re-enable editing on a published task without losing responses.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/modify-fixture-numbers\">\n <div class=\"icon\"><i class=\"bi bi-input-cursor-text\"></i></div>\n <div class=\"title\">Modify Fixture Numbers</div>\n <div class=\"desc\">Renumber fixtures in a planogram.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/layout-touchup\">\n <div class=\"icon\"><i class=\"bi bi-arrows-move\"></i></div>\n <div class=\"title\">Layout Touchup</div>\n <div class=\"desc\">Reposition or resize layout elements without invalidating responses.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/swap-template\">\n <div class=\"icon\"><i class=\"bi bi-arrow-left-right\"></i></div>\n <div class=\"title\">Template Swap</div>\n <div class=\"desc\">Replace one fixture template with another.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/move-bucket\">\n <div class=\"icon\"><i class=\"bi bi-arrow-down-up\"></i></div>\n <div class=\"title\">Move Store Bucket</div>\n <div class=\"desc\">Move a floor between Onboarding and ManagePlano.</div>\n </a>\n </div>\n </div>\n\n <div class=\"tool-section mb-4\">\n <h6 class=\"section-title text-danger\">Destructive</h6>\n <div class=\"card-grid\">\n <a class=\"tool-card tool-card-danger\" routerLink=\"/manage/planogram/plano-tools/delete-task\">\n <div class=\"icon\"><i class=\"bi bi-trash\"></i></div>\n <div class=\"title\">Delete Task</div>\n <div class=\"desc\">Remove a task and its responses.</div>\n </a>\n <a class=\"tool-card tool-card-danger\" routerLink=\"/manage/planogram/plano-tools/delete-floor\">\n <div class=\"icon\"><i class=\"bi bi-trash3\"></i></div>\n <div class=\"title\">Delete Floor</div>\n <div class=\"desc\">Remove a floor and all rows referencing it.</div>\n </a>\n </div>\n </div>\n\n <div class=\"tool-section\">\n <h6 class=\"section-title\">Create</h6>\n <div class=\"card-grid\">\n <button type=\"button\" class=\"tool-card tool-card-primary\" (click)=\"onClickCreateFixtureTemplate()\">\n <div class=\"icon\"><i class=\"bi bi-plus-lg text-white\" ></i></div>\n <div class=\"title\">Create Template</div>\n <div class=\"desc\">Start a new fixture template from scratch.</div>\n </button>\n </div>\n </div>\n</div>\n", styles: [".plano-tools-hub{padding:.25rem}.hub-header h4{font-weight:600;color:#0f172a}.section-title{font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;margin-bottom:.75rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.tool-card{display:block;width:100%;text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:1rem 1.1rem;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s,transform .15s;cursor:pointer}.tool-card:hover{border-color:#94a3b8;box-shadow:0 4px 12px #0f172a0f;transform:translateY(-1px)}.tool-card .icon{width:36px;height:36px;border-radius:8px;background:#eff6ff;color:#2563eb;display:flex;align-items:center;justify-content:center;font-size:1.1rem;margin-bottom:.6rem}.tool-card .title{font-weight:600;color:#0f172a;margin-bottom:.25rem}.tool-card .desc{font-size:.825rem;color:#64748b;line-height:1.35}.tool-card.tool-card-danger .icon{background:#fef2f2;color:#dc2626}.tool-card.tool-card-danger:hover{border-color:#fca5a5}.tool-card.tool-card-primary{border-color:#16a34a;background:#f0fdf4}.tool-card.tool-card-primary .icon{background:#16a34a;color:#fff;font-size:1.5rem;line-height:1;font-weight:700}.tool-card.tool-card-primary .title{color:#14532d}.tool-card.tool-card-primary:hover{border-color:#15803d;box-shadow:0 4px 14px #16a34a2e}\n"], dependencies: [{ kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
|
|
54
73
|
}
|
|
55
74
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolsParentComponent, decorators: [{
|
|
56
75
|
type: Component,
|
|
57
|
-
args: [{ selector: "lib-tools-parent", template: "<div class=\"
|
|
58
|
-
}], ctorParameters: () => [{ type: i1.NgbModal }, { type: i2.Router }, { type: i3.GlobalStateService }] });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMtcGFyZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL3BsYW5vLXRvb2xzL3Rvb2xzLXBhcmVudC90b29scy1wYXJlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvcGxhbm8tdG9vbHMvdG9vbHMtcGFyZW50L3Rvb2xzLXBhcmVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLCtGQUErRixDQUFDO0FBRy9JLE9BQU8sRUFDTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixPQUFPLEVBQ1AsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDOzs7OztBQU9kLE1BQU0sT0FBTyxvQkFBb0I7SUFLckI7SUFDQTtJQUNBO0lBTlYsUUFBUSxDQUFTO0lBRUEsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFDaEQsWUFDVSxRQUFrQixFQUNsQixNQUFjLEVBQ2QsRUFBc0I7UUFGdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7SUFDN0IsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWM7YUFDbkIsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsdURBQXVEO1FBQ2pGLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxxQ0FBcUM7UUFDeEQsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsNEJBQTRCO1FBQ3RELG9CQUFvQixFQUFFLENBQUMsMkRBQTJEO1NBQ25GO2FBQ0EsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxJQUFJLEVBQUUsTUFBTSxFQUFFO2dCQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxNQUFNLENBQUM7YUFDOUI7aUJBQU07Z0JBQ0wsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDekIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBVyxDQUNqRCxDQUFDO2dCQUNGLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxFQUFFLE1BQU0sQ0FBQzthQUNwQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELDRCQUE0QjtRQUMxQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyw4QkFBOEIsRUFBRTtZQUNsRSxRQUFRLEVBQUUsSUFBSTtZQUNkLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQyxDQUFDO1FBQ0gsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3BELFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDOUIsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQ2xCLENBQUMsa0RBQWtELENBQUMsRUFDcEQsRUFBRSxXQUFXLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FDMUQsQ0FBQzthQUNIO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO3dHQWpEVSxvQkFBb0I7NEZBQXBCLG9CQUFvQix3RENsQmpDLDAwRUE4RCtCOzs0RkQ1Q2xCLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSBcIkBuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwXCI7XHJcbmltcG9ydCB7IENyZWF0ZUZpeHR1cmVUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9maXh0dXJlLXRlbXBsYXRlLXRhYmxlL3BvcHVwcy9jcmVhdGUtZml4dHVyZS10ZW1wbGF0ZS9jcmVhdGUtZml4dHVyZS10ZW1wbGF0ZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSBcInRhbmdvLWFwcC11aS1nbG9iYWxcIjtcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQge1xyXG4gIGRlYm91bmNlVGltZSxcclxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcclxuICBmaWx0ZXIsXHJcbiAgU3ViamVjdCxcclxuICB0YWtlVW50aWwsXHJcbn0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi10b29scy1wYXJlbnRcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3Rvb2xzLXBhcmVudC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsOiBcIi4vdG9vbHMtcGFyZW50LmNvbXBvbmVudC5zY3NzXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb29sc1BhcmVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY2xpZW50SWQ6IHN0cmluZztcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG5nYk1vZGFsOiBOZ2JNb2RhbCxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIC8vIFN1YnNjcmlwdGlvbiB3aWxsIGJlIGNhbmNlbGxlZCBvbiBjb21wb25lbnQgZGVzdHJveS5cclxuICAgICAgICBkZWJvdW5jZVRpbWUoMjAwKSwgLy8gVG8gYXZvaWQgaW1tZWRpYXRlIGZyZXF1ZW50IGNhbGxzLlxyXG4gICAgICAgIGZpbHRlcigoZGF0YSkgPT4gISFkYXRhKSwgLy8gRmlsdGVyaW5nIG51bGwvdW5kZWZpbmVkLlxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkgLy8gRW1pdHRpbmcgb25seSBkaWZmZXJlbnQgdmFsdWVzLiAoSWdub3JlcyBzYW1lIGNsaWVudElkKS5cclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YT8uY2xpZW50KSB7XHJcbiAgICAgICAgICB0aGlzLmNsaWVudElkID0gZGF0YT8uY2xpZW50O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgaGVhZGVyRGF0YSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgYXMgc3RyaW5nXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5jbGllbnRJZCA9IGhlYWRlckRhdGE/LmNsaWVudDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja0NyZWF0ZUZpeHR1cmVUZW1wbGF0ZSgpIHtcclxuICAgIGNvbnN0IG1vZGVsUmVmID0gdGhpcy5uZ2JNb2RhbC5vcGVuKENyZWF0ZUZpeHR1cmVUZW1wbGF0ZUNvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgc2l6ZTogXCJtZFwiLFxyXG4gICAgfSk7XHJcbiAgICBtb2RlbFJlZi5jb21wb25lbnRJbnN0YW5jZS5jbGllbnRJZCA9IHRoaXMuY2xpZW50SWQ7XHJcbiAgICBtb2RlbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcclxuICAgICAgICAgIFtcIi9tYW5hZ2UvcGxhbm9ncmFtL2ZpeHR1cmUtdGVtcGxhdGUvYmFzaWMtZGV0YWlsc1wiXSxcclxuICAgICAgICAgIHsgcXVlcnlQYXJhbXM6IHsgdGVtcGxhdGVJZDogcmVzdWx0Ll9pZCwgaXNFZGl0OiB0cnVlIH0gfVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBtYi0zXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4ICBnYXAtM1wiPlxyXG5cclxuICAgICAgICA8IS0tIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvYnVpbGRlclwiPlxyXG4gICAgICAgICAgICBQbGFubyBCdWlsZGVyXHJcbiAgICAgICAgPC9idXR0b24+IC0tPlxyXG5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL21pZ3JhdGVcIj5cclxuICAgICAgICAgICAgRG93bmxvYWQgTGF5b3V0IEltYWdlc1xyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvY2FkLXJlbmRlclwiPlxyXG4gICAgICAgICAgICBDaGVjayBDQUQgT3V0cHV0XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvYWxsb3ctZWRpdFwiPlxyXG4gICAgICAgICAgICBBbGxvdyBFZGl0XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvZGVsZXRlLXRhc2tcIj5cclxuICAgICAgICAgICAgRGVsZXRlIFRhc2tcclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZVwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3BsYW5vZ3JhbS9wbGFuby10b29scy9kZWxldGUtZmxvb3JcIj5cclxuICAgICAgICAgICAgRGVsZXRlIEZsb29yXHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZVwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3BsYW5vZ3JhbS9wbGFuby10b29scy91cGRhdGUtZml4dHVyZS10eXBlXCI+XHJcbiAgICAgICAgICAgIFVwZGF0ZSBGaXh0dXJlIFR5cGVcclxuICAgICAgICA8L2J1dHRvbj4gLS0+XHJcblxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvbW9kaWZ5LWZpeHR1cmUtbnVtYmVyc1wiPlxyXG4gICAgICAgICAgICBNb2RpZnkgRml4dHVyZSBOdW1iZXJzXHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvZGF0YS1leHBvcnRcIj5cclxuICAgICAgICAgICAgRGF0YSBFeHBvcnRcclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZVwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3BsYW5vZ3JhbS9wbGFuby10b29scy9zdG9yZS1leHBvcnRzXCI+XHJcbiAgICAgICAgICAgIE1CUSAmIE9yZGVyXHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvc3dhcC10ZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICBUZW1wbGF0ZSBTd2FwXHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvbW92ZS1idWNrZXRcIj5cclxuICAgICAgICAgICAgTW92ZSBTdG9yZSBCdWNrZXRcclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZVwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3BsYW5vZ3JhbS9wbGFuby10b29scy9jYWQtZmlsZXNcIj5cclxuICAgICAgICAgICAgQ0FEIEZpbGVzXHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIiAoY2xpY2spPVwib25DbGlja0NyZWF0ZUZpeHR1cmVUZW1wbGF0ZSgpXCI+XHJcbiAgICAgICAgICAgIENyZWF0ZSBUZW1wbGF0ZVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGhyPlxyXG48cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+Il19
|
|
76
|
+
args: [{ selector: "lib-tools-parent", template: "<div class=\"plano-tools-hub\">\n <div class=\"hub-header mb-4\">\n <h4 class=\"mb-1\">Plano Tools</h4>\n <p class=\"text-muted small mb-0\">\n Utilities for managing planograms, layouts, exports and templates.\n </p>\n </div>\n\n <div class=\"tool-section mb-4\">\n <h6 class=\"section-title\">Export & Inspect</h6>\n <div class=\"card-grid\">\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/migrate\">\n <div class=\"icon\"><i class=\"bi bi-images\"></i></div>\n <div class=\"title\">Download Layout Images</div>\n <div class=\"desc\">Export layout images store by store.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/cad-render\">\n <div class=\"icon\"><i class=\"bi bi-bounding-box\"></i></div>\n <div class=\"title\">Check CAD Output</div>\n <div class=\"desc\">Paste CAD data and preview the parsed layout.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/cad-files\">\n <div class=\"icon\"><i class=\"bi bi-folder2-open\"></i></div>\n <div class=\"title\">CAD Files</div>\n <div class=\"desc\">List uploaded CAD & Kissflow files for a store.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/data-export\">\n <div class=\"icon\"><i class=\"bi bi-database-down\"></i></div>\n <div class=\"title\">Data Export</div>\n <div class=\"desc\">Query planogram fixtures and export as Excel.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/store-exports\">\n <div class=\"icon\"><i class=\"bi bi-file-earmark-spreadsheet\"></i></div>\n <div class=\"title\">MBQ & Order</div>\n <div class=\"desc\">Generate per-store fixture export bundles.</div>\n </a>\n </div>\n </div>\n\n <div class=\"tool-section mb-4\">\n <h6 class=\"section-title\">Edit & Modify</h6>\n <div class=\"card-grid\">\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/allow-edit\">\n <div class=\"icon\"><i class=\"bi bi-pencil-square\"></i></div>\n <div class=\"title\">Allow Edit</div>\n <div class=\"desc\">Re-enable editing on a published task without losing responses.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/modify-fixture-numbers\">\n <div class=\"icon\"><i class=\"bi bi-input-cursor-text\"></i></div>\n <div class=\"title\">Modify Fixture Numbers</div>\n <div class=\"desc\">Renumber fixtures in a planogram.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/layout-touchup\">\n <div class=\"icon\"><i class=\"bi bi-arrows-move\"></i></div>\n <div class=\"title\">Layout Touchup</div>\n <div class=\"desc\">Reposition or resize layout elements without invalidating responses.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/swap-template\">\n <div class=\"icon\"><i class=\"bi bi-arrow-left-right\"></i></div>\n <div class=\"title\">Template Swap</div>\n <div class=\"desc\">Replace one fixture template with another.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/move-bucket\">\n <div class=\"icon\"><i class=\"bi bi-arrow-down-up\"></i></div>\n <div class=\"title\">Move Store Bucket</div>\n <div class=\"desc\">Move a floor between Onboarding and ManagePlano.</div>\n </a>\n </div>\n </div>\n\n <div class=\"tool-section mb-4\">\n <h6 class=\"section-title text-danger\">Destructive</h6>\n <div class=\"card-grid\">\n <a class=\"tool-card tool-card-danger\" routerLink=\"/manage/planogram/plano-tools/delete-task\">\n <div class=\"icon\"><i class=\"bi bi-trash\"></i></div>\n <div class=\"title\">Delete Task</div>\n <div class=\"desc\">Remove a task and its responses.</div>\n </a>\n <a class=\"tool-card tool-card-danger\" routerLink=\"/manage/planogram/plano-tools/delete-floor\">\n <div class=\"icon\"><i class=\"bi bi-trash3\"></i></div>\n <div class=\"title\">Delete Floor</div>\n <div class=\"desc\">Remove a floor and all rows referencing it.</div>\n </a>\n </div>\n </div>\n\n <div class=\"tool-section\">\n <h6 class=\"section-title\">Create</h6>\n <div class=\"card-grid\">\n <button type=\"button\" class=\"tool-card tool-card-primary\" (click)=\"onClickCreateFixtureTemplate()\">\n <div class=\"icon\"><i class=\"bi bi-plus-lg text-white\" ></i></div>\n <div class=\"title\">Create Template</div>\n <div class=\"desc\">Start a new fixture template from scratch.</div>\n </button>\n </div>\n </div>\n</div>\n", styles: [".plano-tools-hub{padding:.25rem}.hub-header h4{font-weight:600;color:#0f172a}.section-title{font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;margin-bottom:.75rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.tool-card{display:block;width:100%;text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:1rem 1.1rem;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s,transform .15s;cursor:pointer}.tool-card:hover{border-color:#94a3b8;box-shadow:0 4px 12px #0f172a0f;transform:translateY(-1px)}.tool-card .icon{width:36px;height:36px;border-radius:8px;background:#eff6ff;color:#2563eb;display:flex;align-items:center;justify-content:center;font-size:1.1rem;margin-bottom:.6rem}.tool-card .title{font-weight:600;color:#0f172a;margin-bottom:.25rem}.tool-card .desc{font-size:.825rem;color:#64748b;line-height:1.35}.tool-card.tool-card-danger .icon{background:#fef2f2;color:#dc2626}.tool-card.tool-card-danger:hover{border-color:#fca5a5}.tool-card.tool-card-primary{border-color:#16a34a;background:#f0fdf4}.tool-card.tool-card-primary .icon{background:#16a34a;color:#fff;font-size:1.5rem;line-height:1;font-weight:700}.tool-card.tool-card-primary .title{color:#14532d}.tool-card.tool-card-primary:hover{border-color:#15803d;box-shadow:0 4px 14px #16a34a2e}\n"] }]
|
|
77
|
+
}], ctorParameters: () => [{ type: i1.NgbModal }, { type: i2.Router }, { type: i3.GlobalStateService }, { type: i3.PageInfoService }] });
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMtcGFyZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL3BsYW5vLXRvb2xzL3Rvb2xzLXBhcmVudC90b29scy1wYXJlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvcGxhbm8tdG9vbHMvdG9vbHMtcGFyZW50L3Rvb2xzLXBhcmVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLCtGQUErRixDQUFDO0FBRy9JLE9BQU8sRUFDTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixPQUFPLEVBQ1AsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDOzs7OztBQU9kLE1BQU0sT0FBTyxvQkFBb0I7SUFLckI7SUFDQTtJQUNBO0lBQ0E7SUFQVixRQUFRLENBQVM7SUFFQSxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUNoRCxZQUNVLFFBQWtCLEVBQ2xCLE1BQWMsRUFDZCxFQUFzQixFQUN0QixRQUF5QjtRQUh6QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtJQUNoQyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVuQixJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWM7YUFDbkIsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsdURBQXVEO1FBQ2pGLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxxQ0FBcUM7UUFDeEQsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsNEJBQTRCO1FBQ3RELG9CQUFvQixFQUFFLENBQ3ZCO2FBQ0EsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxJQUFJLEVBQUUsTUFBTSxFQUFFO2dCQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxNQUFNLENBQUM7YUFDOUI7aUJBQU07Z0JBQ0wsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDekIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBVyxDQUNqRCxDQUFDO2dCQUNGLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxFQUFFLE1BQU0sQ0FBQzthQUNwQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxpQ0FBaUM7UUFDakMsTUFBTTtRQUNOLDBCQUEwQjtRQUMxQixtREFBbUQ7UUFDbkQsdUJBQXVCO1FBQ3ZCLDBCQUEwQjtRQUMxQixPQUFPO1FBQ1AsTUFBTTtRQUNOLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsdUJBQXVCO1FBQ3ZCLHlCQUF5QjtRQUN6QixPQUFPO1FBQ1AsTUFBTTtJQUNSLENBQUM7SUFFRCw0QkFBNEI7UUFDMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsOEJBQThCLEVBQUU7WUFDbEUsUUFBUSxFQUFFLElBQUk7WUFDZCxJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUMsQ0FBQztRQUNILFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNwRCxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzlCLElBQUksTUFBTSxFQUFFO2dCQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUNsQixDQUFDLGtEQUFrRCxDQUFDLEVBQ3BELEVBQUUsV0FBVyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLENBQzFELENBQUM7YUFDSDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzt3R0F0RVUsb0JBQW9COzRGQUFwQixvQkFBb0Isd0RDbEJqQyx1eEpBaUdBOzs0RkQvRWEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuaW1wb3J0IHsgQ3JlYXRlRml4dHVyZVRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2ZpeHR1cmUtdGVtcGxhdGUtdGFibGUvcG9wdXBzL2NyZWF0ZS1maXh0dXJlLXRlbXBsYXRlL2NyZWF0ZS1maXh0dXJlLXRlbXBsYXRlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UsIFBhZ2VJbmZvU2VydmljZSB9IGZyb20gXCJ0YW5nby1hcHAtdWktZ2xvYmFsXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHtcclxuICBkZWJvdW5jZVRpbWUsXHJcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXHJcbiAgZmlsdGVyLFxyXG4gIFN1YmplY3QsXHJcbiAgdGFrZVVudGlsLFxyXG59IGZyb20gXCJyeGpzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJsaWItdG9vbHMtcGFyZW50XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi90b29scy1wYXJlbnQuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL3Rvb2xzLXBhcmVudC5jb21wb25lbnQuc2Nzc1wiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9vbHNQYXJlbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNsaWVudElkOiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBuZ2JNb2RhbDogTmdiTW9kYWwsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwYWdlSW5mbzogUGFnZUluZm9TZXJ2aWNlLFxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFBhZ2VEYXRhKCk7XHJcblxyXG4gICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIC8vIFN1YnNjcmlwdGlvbiB3aWxsIGJlIGNhbmNlbGxlZCBvbiBjb21wb25lbnQgZGVzdHJveS5cclxuICAgICAgICBkZWJvdW5jZVRpbWUoMjAwKSwgLy8gVG8gYXZvaWQgaW1tZWRpYXRlIGZyZXF1ZW50IGNhbGxzLlxyXG4gICAgICAgIGZpbHRlcigoZGF0YSkgPT4gISFkYXRhKSwgLy8gRmlsdGVyaW5nIG51bGwvdW5kZWZpbmVkLlxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIC8vIEVtaXR0aW5nIG9ubHkgZGlmZmVyZW50IHZhbHVlcy4gKElnbm9yZXMgc2FtZSBjbGllbnRJZCkuXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGE/LmNsaWVudCkge1xyXG4gICAgICAgICAgdGhpcy5jbGllbnRJZCA9IGRhdGE/LmNsaWVudDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IGhlYWRlckRhdGEgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIGFzIHN0cmluZyxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmNsaWVudElkID0gaGVhZGVyRGF0YT8uY2xpZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQYWdlRGF0YSgpIHtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0VGl0bGUoXCJQbGFubyBUb29sc1wiKTtcclxuICAgIC8vIHRoaXMucGFnZUluZm8uc2V0QnJlYWRjcnVtYnMoW1xyXG4gICAgLy8gICB7XHJcbiAgICAvLyAgICAgdGl0bGU6IFwiUGxhbm9ncmFtXCIsXHJcbiAgICAvLyAgICAgcGF0aDogXCIvbWFuYWdlL3BsYW5vZ3JhbS9tYW5hZ2UtcGxhbm9ncmFtc1wiLFxyXG4gICAgLy8gICAgIGlzQWN0aXZlOiBmYWxzZSxcclxuICAgIC8vICAgICBpc1NlcGFyYXRvcjogZmFsc2UsXHJcbiAgICAvLyAgIH0sXHJcbiAgICAvLyAgIHtcclxuICAgIC8vICAgICB0aXRsZTogXCJcIixcclxuICAgIC8vICAgICBwYXRoOiBcIlwiLFxyXG4gICAgLy8gICAgIGlzQWN0aXZlOiBmYWxzZSxcclxuICAgIC8vICAgICBpc1NlcGFyYXRvcjogdHJ1ZSxcclxuICAgIC8vICAgfSxcclxuICAgIC8vIF0pO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja0NyZWF0ZUZpeHR1cmVUZW1wbGF0ZSgpIHtcclxuICAgIGNvbnN0IG1vZGVsUmVmID0gdGhpcy5uZ2JNb2RhbC5vcGVuKENyZWF0ZUZpeHR1cmVUZW1wbGF0ZUNvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgc2l6ZTogXCJtZFwiLFxyXG4gICAgfSk7XHJcbiAgICBtb2RlbFJlZi5jb21wb25lbnRJbnN0YW5jZS5jbGllbnRJZCA9IHRoaXMuY2xpZW50SWQ7XHJcbiAgICBtb2RlbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcclxuICAgICAgICAgIFtcIi9tYW5hZ2UvcGxhbm9ncmFtL2ZpeHR1cmUtdGVtcGxhdGUvYmFzaWMtZGV0YWlsc1wiXSxcclxuICAgICAgICAgIHsgcXVlcnlQYXJhbXM6IHsgdGVtcGxhdGVJZDogcmVzdWx0Ll9pZCwgaXNFZGl0OiB0cnVlIH0gfSxcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwbGFuby10b29scy1odWJcIj5cbiAgPGRpdiBjbGFzcz1cImh1Yi1oZWFkZXIgbWItNFwiPlxuICAgIDxoNCBjbGFzcz1cIm1iLTFcIj5QbGFubyBUb29sczwvaDQ+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LW11dGVkIHNtYWxsIG1iLTBcIj5cbiAgICAgIFV0aWxpdGllcyBmb3IgbWFuYWdpbmcgcGxhbm9ncmFtcywgbGF5b3V0cywgZXhwb3J0cyBhbmQgdGVtcGxhdGVzLlxuICAgIDwvcD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInRvb2wtc2VjdGlvbiBtYi00XCI+XG4gICAgPGg2IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPkV4cG9ydCAmYW1wOyBJbnNwZWN0PC9oNj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ncmlkXCI+XG4gICAgICA8YSBjbGFzcz1cInRvb2wtY2FyZFwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3BsYW5vZ3JhbS9wbGFuby10b29scy9taWdyYXRlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+PGkgY2xhc3M9XCJiaSBiaS1pbWFnZXNcIj48L2k+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPkRvd25sb2FkIExheW91dCBJbWFnZXM8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NcIj5FeHBvcnQgbGF5b3V0IGltYWdlcyBzdG9yZSBieSBzdG9yZS48L2Rpdj5cbiAgICAgIDwvYT5cbiAgICAgIDxhIGNsYXNzPVwidG9vbC1jYXJkXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL2NhZC1yZW5kZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj48aSBjbGFzcz1cImJpIGJpLWJvdW5kaW5nLWJveFwiPjwvaT48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+Q2hlY2sgQ0FEIE91dHB1dDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY1wiPlBhc3RlIENBRCBkYXRhIGFuZCBwcmV2aWV3IHRoZSBwYXJzZWQgbGF5b3V0LjwvZGl2PlxuICAgICAgPC9hPlxuICAgICAgPGEgY2xhc3M9XCJ0b29sLWNhcmRcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvY2FkLWZpbGVzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+PGkgY2xhc3M9XCJiaSBiaS1mb2xkZXIyLW9wZW5cIj48L2k+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPkNBRCBGaWxlczwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY1wiPkxpc3QgdXBsb2FkZWQgQ0FEICZhbXA7IEtpc3NmbG93IGZpbGVzIGZvciBhIHN0b3JlLjwvZGl2PlxuICAgICAgPC9hPlxuICAgICAgPGEgY2xhc3M9XCJ0b29sLWNhcmRcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvZGF0YS1leHBvcnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj48aSBjbGFzcz1cImJpIGJpLWRhdGFiYXNlLWRvd25cIj48L2k+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPkRhdGEgRXhwb3J0PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjXCI+UXVlcnkgcGxhbm9ncmFtIGZpeHR1cmVzIGFuZCBleHBvcnQgYXMgRXhjZWwuPC9kaXY+XG4gICAgICA8L2E+XG4gICAgICA8YSBjbGFzcz1cInRvb2wtY2FyZFwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3BsYW5vZ3JhbS9wbGFuby10b29scy9zdG9yZS1leHBvcnRzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+PGkgY2xhc3M9XCJiaSBiaS1maWxlLWVhcm1hcmstc3ByZWFkc2hlZXRcIj48L2k+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPk1CUSAmYW1wOyBPcmRlcjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY1wiPkdlbmVyYXRlIHBlci1zdG9yZSBmaXh0dXJlIGV4cG9ydCBidW5kbGVzLjwvZGl2PlxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwidG9vbC1zZWN0aW9uIG1iLTRcIj5cbiAgICA8aDYgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+RWRpdCAmYW1wOyBNb2RpZnk8L2g2PlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWdyaWRcIj5cbiAgICAgIDxhIGNsYXNzPVwidG9vbC1jYXJkXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL2FsbG93LWVkaXRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj48aSBjbGFzcz1cImJpIGJpLXBlbmNpbC1zcXVhcmVcIj48L2k+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPkFsbG93IEVkaXQ8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NcIj5SZS1lbmFibGUgZWRpdGluZyBvbiBhIHB1Ymxpc2hlZCB0YXNrIHdpdGhvdXQgbG9zaW5nIHJlc3BvbnNlcy48L2Rpdj5cbiAgICAgIDwvYT5cbiAgICAgIDxhIGNsYXNzPVwidG9vbC1jYXJkXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL21vZGlmeS1maXh0dXJlLW51bWJlcnNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj48aSBjbGFzcz1cImJpIGJpLWlucHV0LWN1cnNvci10ZXh0XCI+PC9pPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5Nb2RpZnkgRml4dHVyZSBOdW1iZXJzPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjXCI+UmVudW1iZXIgZml4dHVyZXMgaW4gYSBwbGFub2dyYW0uPC9kaXY+XG4gICAgICA8L2E+XG4gICAgICA8YSBjbGFzcz1cInRvb2wtY2FyZFwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3BsYW5vZ3JhbS9wbGFuby10b29scy9sYXlvdXQtdG91Y2h1cFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPjxpIGNsYXNzPVwiYmkgYmktYXJyb3dzLW1vdmVcIj48L2k+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPkxheW91dCBUb3VjaHVwPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjXCI+UmVwb3NpdGlvbiBvciByZXNpemUgbGF5b3V0IGVsZW1lbnRzIHdpdGhvdXQgaW52YWxpZGF0aW5nIHJlc3BvbnNlcy48L2Rpdj5cbiAgICAgIDwvYT5cbiAgICAgIDxhIGNsYXNzPVwidG9vbC1jYXJkXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL3N3YXAtdGVtcGxhdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj48aSBjbGFzcz1cImJpIGJpLWFycm93LWxlZnQtcmlnaHRcIj48L2k+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlRlbXBsYXRlIFN3YXA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NcIj5SZXBsYWNlIG9uZSBmaXh0dXJlIHRlbXBsYXRlIHdpdGggYW5vdGhlci48L2Rpdj5cbiAgICAgIDwvYT5cbiAgICAgIDxhIGNsYXNzPVwidG9vbC1jYXJkXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL21vdmUtYnVja2V0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+PGkgY2xhc3M9XCJiaSBiaS1hcnJvdy1kb3duLXVwXCI+PC9pPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5Nb3ZlIFN0b3JlIEJ1Y2tldDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY1wiPk1vdmUgYSBmbG9vciBiZXR3ZWVuIE9uYm9hcmRpbmcgYW5kIE1hbmFnZVBsYW5vLjwvZGl2PlxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwidG9vbC1zZWN0aW9uIG1iLTRcIj5cbiAgICA8aDYgY2xhc3M9XCJzZWN0aW9uLXRpdGxlIHRleHQtZGFuZ2VyXCI+RGVzdHJ1Y3RpdmU8L2g2PlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWdyaWRcIj5cbiAgICAgIDxhIGNsYXNzPVwidG9vbC1jYXJkIHRvb2wtY2FyZC1kYW5nZXJcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvZGVsZXRlLXRhc2tcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj48aSBjbGFzcz1cImJpIGJpLXRyYXNoXCI+PC9pPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5EZWxldGUgVGFzazwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY1wiPlJlbW92ZSBhIHRhc2sgYW5kIGl0cyByZXNwb25zZXMuPC9kaXY+XG4gICAgICA8L2E+XG4gICAgICA8YSBjbGFzcz1cInRvb2wtY2FyZCB0b29sLWNhcmQtZGFuZ2VyXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL2RlbGV0ZS1mbG9vclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPjxpIGNsYXNzPVwiYmkgYmktdHJhc2gzXCI+PC9pPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5EZWxldGUgRmxvb3I8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NcIj5SZW1vdmUgYSBmbG9vciBhbmQgYWxsIHJvd3MgcmVmZXJlbmNpbmcgaXQuPC9kaXY+XG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJ0b29sLXNlY3Rpb25cIj5cbiAgICA8aDYgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+Q3JlYXRlPC9oNj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ncmlkXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInRvb2wtY2FyZCB0b29sLWNhcmQtcHJpbWFyeVwiIChjbGljayk9XCJvbkNsaWNrQ3JlYXRlRml4dHVyZVRlbXBsYXRlKClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj48aSBjbGFzcz1cImJpIGJpLXBsdXMtbGcgdGV4dC13aGl0ZVwiID48L2k+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPkNyZWF0ZSBUZW1wbGF0ZTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY1wiPlN0YXJ0IGEgbmV3IGZpeHR1cmUgdGVtcGxhdGUgZnJvbSBzY3JhdGNoLjwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|