PageSourceSearch

https://altego.portal.polyfazer.eu/chunks/device-template-edit-B2BZv1cf.js

js polyfazer.eu collected 2026-09-24 14:03:39 UTC 8,470 bytes, 142 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["chunks/image-editor-CRzixYg4.js","chunks/polyfazer-app-DumDTOPg.js","chunks/main-BEpca-0G.js","assets/polyfazer-app-BxOL82Ft.css","chunks/image-frame-DZbP5vtK.js"])))=>i.map(i=>d[i]);
2import{ar as d,A as l,_ as n,Q as p}from"./main-BEpca-0G.js";import{P as m,h as c,i as r,a as g,c as h}from"./polyfazer-app-DumDTOPg.js";import{D as v}from"./diamond-section-behavior-oUm0C5jt.js";import{d as a}from"./device-template-services-Wd9yh4_Q.js";import{V as u}from"./vaadin-upload-behavior-CDR7CRnJ.js";import"./image-frame-DZbP5vtK.js";import{L as f}from"./lang-helper-behavior-D3p_DZHb.js";import"./edit-device-gmlMe8e9.js";import{P as s}from"./page-toolbar-C-8EZufE.js";import"./polymer-utils-B8xivS0d.js";import"./BetterHTML-BN6nzApa.js";import"./BetterTemplateHandling-CTXk4mRb.js";import"./typography-WuKe67Dy.js";import"./vaadin-button-styles-BwN-jsYe.js";import"./ExtendedDate-BLMVein7.js";import"./diamond-collapsible-wrapper-DbPGScyB.js";import"./collapsible-mixin-DFzWPmrp.js";import"./icon-input-CFoseOJ6.js";import"./connector-icons-CU2MvAxY.js";import"./color-input-BIuxQB3Y.js";import"./connector-technical-configuration-DTNg2sUp.js";import"./switch-selector-EfXTexBN.js";import"./BetterPolymerElement-Dg3wVY7D.js";import"./dialog-input-behavior-DcN20D9O.js";import"./select-connector-standard-input-COKOiL7r.js";import"./input-mixin-CrUPo4TG.js";import"./select-connector-standard-Do4iIj-0.js";import"./location-services-B-Yo7g_g.js";import"./date-input-_2aV4Dis.js";import"./vaadin-date-picker-C0nM5XdO.js";import"./dropdown-input-B-nqSpts.js";import"./input-mixin-B41Xo3VN.js";import"./translation-mixin-DzuKWY5M.js";import"./number-input-1Ysiylry.js";import"./event-listeners-mixin-CmUvl9h8.js";import"./diamond-icon-button-AIbsxFeD.js";import"./question-tag-C9ym_uv9.js";import"./tippy-tooltip-BFt4tVnx.js";import"./select-unit-type-input-D_-MR1Mb.js";import"./paper-shrink-menu-C7LnALvz.js";class _ extends v(f(u(m))){static get template(){return c`
3			${super.template}
4			<style>
5				:host {
6					position: relative;
7					width: 100%;
8					height: 100%;
9					display: block;
10				}
11
12				paper-material {
13					width: 100%;
14					margin-bottom: 30px;
15					min-height: 350px;
16					padding: 20px;
17				}
18				.photos {
19					padding: 15px;
20					flex-wrap: wrap;
21				}
22
23				.photo {
24					height: 100px;
25					width: 130px;
26					margin: 7px;
27					position: relative;
28					background: var(--surface-color);
29					border: 1px solid var(--primary-border-color);
30					border-radius: var(--block-border-radius);
31					padding: 10px;
32					overflow: hidden;
33				}
34
35				.photo:hover .img-overlay {
36					opacity: 1;
37					transition: opacity .2s ease-in;
38					cursor: pointer;
39				}
40
41				.photo .img-overlay {
42					opacity: 0;
43					position: absolute;
44					width: 100%;
45					height: 100%;
46					left: 0;
47					top: 0;
48					z-index: 1;
49					background: rgba(0, 0, 0, .6);
50					display: flex;
51					justify-content: space-around;
52					align-items: center;
53				}
54
55				.img-overlay iron-icon {
56					color: white;
57				}
58
59				.img-overlay iron-icon:hover {
60					color: var(--secondary-color);
61				}
62
63				h2 {
64					margin: 1rem 0;
65				}
66
67				edit-device {
68					--device-details: {
69						background: var(--surface-color);
70						color: var(--on-surface-color);
71						margin: 0 0 10px;
72						padding: 20px;
73						box-shadow: var(--shadow-elevation-2dp_-_box-shadow);
74					};
75
76					--device-component: {
77						background: var(--surface-color);
78						color: var(--on-surface-color);
79						box-shadow: var(--shadow-elevation-2dp_-_box-shadow);
80					}
81				}
82			</style>
83
84			<page-toolbar
85				pending="[[or(loading, sending)]]"
86				error="[[error]]"
87				return-href="[[getBackRoute(deviceTemplateID, '/device-templates', '/device-templates/%{deviceTemplateID}%')]]"
88			>
89				<paper-shrink-menu slot="action-buttons" show-labels>
90					<template is="dom-if" if="[[deviceTemplateID]]">
91						${s.ACTION_BUTTON.delete()}
92					</template>
93					${s.ACTION_BUTTON.save()}
94				</paper-shrink-menu>
95			</page-toolbar>
96
97			<div class="content-wrap full-height" id="scroll">
98				<paper-material>
99					<diamond-section-overlay loading="[[loading]]" error="[[error]]" sending="[[sending]]" on-retry="refresh"></diamond-section-overlay>
100
101					<paper-input label="[[_lang('name')]]*" value="{{deviceTemplate.name}}" required></paper-input>
102
103					<div class="photos-section">
104						<h2>[[_lang('photos')]]</h2>
105						<vaadin-upload
106							id="images"
107
108							${this.vaadinUploadImageAttributesTemplate()}
109							max-files="10"
110							target="[[getApiUrl()]]/image/upload"
111
112							on-upload-success="_onUploadSuccess"
113							on-upload-request="_onUploadRequest"
114							on-file-reject="_onUploadFileRejected"
115						></vaadin-upload>
116
117						<div class="photos flex-row vertical-center">
118							<template is="dom-repeat" items="[[deviceTemplate.images]]" sort="sortByIdDesc">
119								<div class="photo" image-id$="[[item.id]]">
120									<div class="img-overlay">
121										<iron-icon icon="edit" on-click="_openEditImage"></iron-icon>
122										<iron-icon icon="delete" on-click="_deleteImage"></iron-icon>
123									</div>
124									<image-frame image="[[item]]"></image-frame>
125								</div>
126							</template>
127						</div>
128					</div>
129				</paper-material>
130
131				<section hidden$="[[isEqual(1, loading, errorLoading)]]">
132					<h1>[[_lang('deviceDefinition')]]</h1>
133
134					<edit-device device="{{deviceTemplate.defaultDevice}}" required id="editDevice"></edit-device>
135				</section>
136			</div>
137
138			<dialog-wrapper id="imageEditor" full-screen no-scroll>
139				<image-editor on-image-built="_handleImageEdit"></image-editor>
140			</dialog-wrapper>
141		`}static get properties(){return{as:{value:"deviceTemplate"}}}onPageLeave(){super.onPageLeave(),this.set(this.alias,null)}init(e){window.deviceTemplateEdit=this,this.$.images.files=[],super.init(e,!1),this.getItemID?(this.refresh(),this._focusComponent()):(this.resetFields(),this.updateRoute("device-template-creation"),this.setProperties({deviceTemplate:this.clone(d)}))}refresh(e,...i){super.refresh((...t)=>a.getItemForEdit(...t),...i)}handleData(e){super.handleData(e),this.resetFields(),this._focusComponent()}saveItem(){if(this.checkMandatoryFields())window.toaster.show(this._lang("validationError"));else return super.saveItem((...e)=>a.updateItem(...e),(...e)=>a.createItem(...e))}deleteItem(){return super.deleteItem((...e)=>a.deleteItem(...e),!0,this._lang("deleteEntry"),this._lang("deleteEntryMessage"),this.get("device.name"))}handleGenericActionData(e){super.handleGenericActionData(e,({id:i})=>`/device-templates/${i}`,"/device-templates","device-templates")}
141setPageTitle(e,i){e&&this.updatePageTitleWithValue(e.name)}_onUploadSuccess(e,i){let t=JSON.parse(i.xhr.response);this.push("deviceTemplate.images",t)}_onUploadRequest(e){e.detail.xhr.setRequestHeader("X-AUTH-TOKEN",localStorage.getItem("token"))}_onUploadFileRejected(){window.toaster.show(this._lang("imageUploadedFailed"))}_deleteImage(e){let i=this.getAttr(e,"image-id");return window.confirmDialog({title:this._lang("deleteImage"),message:this._lang("deleteImageMessage")}).then(()=>{r.deleteItem(i).then(()=>{window.toaster.show(this._lang("imageDeletedSuccess")),this.set("deviceTemplate.images",l.removeID(this.get("deviceTemplate.images"),i,!0,!0))})})}_openEditImage(e){let i=this.getAttr(e,"image-id");this.appImport(()=>n(()=>import("./image-editor-CRzixYg4.js"),__vite__mapDeps([0,1,2,3,4])),"/src/elements/tools/image/image-editor.js").then(()=>{this.$.imageEditor.open(i)})}_handleImageEdit(e){let{imageID:i,image:t}=e.detail;this._updateImage(i,t)}_updateImage(e,i){this.$.imageEditor.propagate(t=>t.set("sending",!0)),r.updateItem(e,i).onSuccess(()=>{this.$.imageEditor.close();let t=[...this.get("deviceTemplate.images")];this.set("deviceTemplate.images",[]),g(this,()=>{this.set("deviceTemplate.images",t)}),window.deviceTemplateDetail&&window.deviceTemplateDetail.invalidateExistingData()}).onError(t=>{window.toaster.show({text:t.message,duration:8e3})}).onProgress(t=>{this.$.imageEditor.propagate(o=>{o.set("sendingProgress",t.progress),t.state!==h.FAILED&&o.set("sendingText",this.translateXHRUploadStates(t.state))})}).onFinally(()=>{this.$.imageEditor.propagate(t=>t.set("sending",!1))})}_focusComponent(){let e=new p(window.location.search).toObject().component;this.$.editDevice.focusComponent(e)}}window.customElements.define("device-template-edit",_);
142//# sourceMappingURL=device-template-edit-B2BZv1cf.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.