diff --git a/mkt/IncludeCommon.php b/mkt/IncludeCommon.php index bf89ca4f..67ebdd7d 100644 --- a/mkt/IncludeCommon.php +++ b/mkt/IncludeCommon.php @@ -1,110 +1,115 @@ - $explode[2]) { - $data['user_id'] = ''; - $data['user_name'] = ''; - $data['code'] = '401'; - $data['message'] = 'Token已过期,请重新登录'; - return $data; - } - if ($true_signature == $explode[4]) { - $data['user_id'] = $explode[0]; - $data['user_name'] = $explode[3]; - $data['code'] = '200'; - $data['message'] = 'Token合法'; - return $data; - } else { - $data['user_id'] = ''; - $data['user_name'] = ''; - $data['code'] = '400'; - $data['message'] = 'Token不合法'; - return $data; - } - } else { - $data['user_id'] = ''; - $data['user_name'] = ''; - $data['code'] = '400'; - $data['message'] = 'Token不合法'; - return $data; - } - } -//生成登录记录 - function save_log_response($source_flag='web', $account, $response_result){ - # 储存纪录并输出 - #echo date("Y-m-d"); - $file_path = "account_log/" . $account . "-" . date("Y-m-d") . ".ini"; - $data = serialize($response_result). date("H:i:s") . "\n"; - $fp = fopen($file_path,"a"); # 如果档案不存在择尝试建立再写入 - fwrite($fp, $data); - fclose($fp); - if ($source_flag == "web"){ -// header("Location: custom-create.php?function_list=" . serialize($response_result) . -// "&token=" . $response_result["token"]); #请输入使用者名称密码 -// exit(); - return true; - }else{ -// echo json_encode($response_result, JSON_UNESCAPED_UNICODE); - return false; - } - - /* - if ($source_flag == "app"){ - echo json_encode($response_result, JSON_UNESCAPED_UNICODE); - }elseif ($source_flag == "web"){ - header("Location: api-account-reply-functions.php?function_list=" . serialize($response_result) . - "&token=" . $response_result["token"]); #请输入使用者名称密码 - exit(); - } - */ - } - -//生成token - function CreateToken($user_id, $user_name) { - date_default_timezone_set("Asia/Taipei"); - $start_time = date("Y-m-d H:i:s"); - $end_time = date('Y-m-d H:i:s',strtotime('+24 hour')); #设定24小时 - $info = $user_id . '.' . $start_time . '.' . $end_time . '.' . $user_name; //设置token过期时间为一天 - $encryption_code = "MASADA!^***"; - //根据以上信息信息生成签名(密钥为 SIGNATURE 自定义全局常量) - $signature = hash_hmac('md5', $info, $encryption_code); - //最后将这两部分拼接起来,得到最终的Token字符串 - return $token = $info . '.' . $signature; - } -//生成菜单 - - function menu ($from='tw',$type){ - $function_type = array( - "tw" => array( - # F角色菜单 - "H" => array( - "language" => "tw", - "type" => "manage", - "list" => array( - array("name" => "批量导入", "path" => "http://192.168.0.12/wms/excel-upload"), - ), - "note" => "none", - "token" => "" - ), - ) - ); - - return $function_type[$from][$type]; - - } -} \ No newline at end of file + $explode[2]) { + $data['user_id'] = ''; + $data['user_name'] = ''; + $data['code'] = '401'; + $data['message'] = 'Token已過期,請重新登入'; + return $data; + } + if ($true_signature == $explode[4]) { + $data['user_id'] = $explode[0]; + $data['user_name'] = $explode[3]; + $data['code'] = '200'; + $data['message'] = 'Token合法'; + return $data; + } else { + $data['user_id'] = ''; + $data['user_name'] = ''; + $data['code'] = '400'; + $data['message'] = 'Token不合法'; + return $data; + } + } else { + $data['user_id'] = ''; + $data['user_name'] = ''; + $data['code'] = '400'; + $data['message'] = 'Token不合法'; + return $data; + } + } + //生成登录记录 + function save_log_response($source_flag = 'web', $account, $response_result) + { + # 储存纪录并输出 + #echo date("Y-m-d"); + $file_path = "account_log/" . $account . "-" . date("Y-m-d") . ".ini"; + $data = serialize($response_result) . date("H:i:s") . "\n"; + $fp = fopen($file_path, "a"); # 如果档案不存在择尝试建立再写入 + fwrite($fp, $data); + fclose($fp); + if ($source_flag == "web") { + // header("Location: custom-create.php?function_list=" . serialize($response_result) . + // "&token=" . $response_result["token"]); #请输入使用者名称密码 + // exit(); + return true; + } else { + // echo json_encode($response_result, JSON_UNESCAPED_UNICODE); + return false; + } + + /* + if ($source_flag == "app"){ + echo json_encode($response_result, JSON_UNESCAPED_UNICODE); + }elseif ($source_flag == "web"){ + header("Location: api-account-reply-functions.php?function_list=" . serialize($response_result) . + "&token=" . $response_result["token"]); #请输入使用者名称密码 + exit(); + } + */ + } + + //生成token + function CreateToken($user_id, $user_name) + { + date_default_timezone_set("Asia/Taipei"); + $start_time = date("Y-m-d H:i:s"); + $end_time = date('Y-m-d H:i:s', strtotime('+24 hour')); #设定24小时 + $info = $user_id . '.' . $start_time . '.' . $end_time . '.' . $user_name; //设置token过期时间为一天 + $encryption_code = "MASADA!^***"; + //根据以上信息信息生成签名(密钥为 SIGNATURE 自定义全局常量) + $signature = hash_hmac('md5', $info, $encryption_code); + //最后将这两部分拼接起来,得到最终的Token字符串 + return $token = $info . '.' . $signature; + } + //生成菜单 + + function menu($from = 'tw', $type) + { + $function_type = array( + "tw" => array( + # F角色菜单 + "H" => array( + "language" => "tw", + "type" => "manage", + "list" => array( + array("name" => "批量导入", "path" => "http://192.168.0.12/wms/excel-upload"), + ), + "note" => "none", + "token" => "" + ), + ) + ); + + return $function_type[$from][$type]; + } +} diff --git a/mkt/database.php b/mkt/database.php index 307b3a54..265d2a47 100644 --- a/mkt/database.php +++ b/mkt/database.php @@ -31,8 +31,8 @@ try { $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } } catch (PDOException $e) { - echo "fail"; - echo $e->getMessage(); + // echo "fail"; + // echo $e->getMessage(); } //print_r($link);exit; if($link){ diff --git a/wms/IncludeCommon.php b/wms/IncludeCommon.php index bd895628..b11be99b 100644 --- a/wms/IncludeCommon.php +++ b/wms/IncludeCommon.php @@ -1,212 +1,212 @@ - $explode[3]) { - $data['user_id'] = ''; - $data['code'] = '401'; - $data['message'] = 'Token已过期,请重新登录'; - return $data; - } - if (($true_signature == $explode[4])) { - $data['user_id'] = $explode[0]; - $data['code'] = '200'; - $data['message'] = 'Token合法'; - return $data; - } else { - $data['user_id'] = ''; - $data['code'] = '400'; - $data['message'] = 'Token不合法'; - return $data; - } - } else { - $data['user_id'] = ''; - $data['code'] = '400'; - $data['message'] = 'Token不合法'; - return $data; - } - } -//生成登录记录 - function save_log_response($source_flag='web', $account, $response_result){ - # 储存纪录并输出 - #echo date("Y-m-d"); - $file_path = "account_log/" . $account . "-" . date("Y-m-d") . ".ini"; - $data = serialize($response_result). date("H:i:s") . "\n"; - $fp = fopen($file_path,"a"); # 如果档案不存在择尝试建立再写入 - fwrite($fp, $data); - fclose($fp); - if ($source_flag == "web"){ -// header("Location: custom-create.php?function_list=" . serialize($response_result) . -// "&token=" . $response_result["token"]); #请输入使用者名称密码 -// exit(); - return true; - }else{ -// echo json_encode($response_result, JSON_UNESCAPED_UNICODE); - return false; - } - - /* - if ($source_flag == "app"){ - echo json_encode($response_result, JSON_UNESCAPED_UNICODE); - }elseif ($source_flag == "web"){ - header("Location: api-account-reply-functions.php?function_list=" . serialize($response_result) . - "&token=" . $response_result["token"]); #请输入使用者名称密码 - exit(); - } - */ - } - -//生成token - function CreateToken($user_id, $user_name) { - date_default_timezone_set("Asia/Taipei"); - $start_time = date("Y-m-d H:i:s"); - $end_time = date('Y-m-d H:i:s',strtotime('+24 hour')); #设定24小时 - $info = $user_id . '.' . base64_encode(urlencode($user_name)) . '.' . $start_time . '.' . $end_time; //设置token过期时间为一天 - $encryption_code = "MASADA!^***"; - //根据以上信息信息生成签名(密钥为 SIGNATURE 自定义全局常量) - $signature = hash_hmac('md5', $info, $encryption_code); - //最后将这两部分拼接起来,得到最终的Token字符串 - return $token = $info . '.' . $signature; - } -//生成菜单 - - /** - * 將模擬帳號寫入token - */ - function FakeToken($fake_user_id, $token) { - date_default_timezone_set("Asia/Taipei"); - $encryption_code = "MASADA!^***"; - $time = date("Y-m-d H:i:s"); - $explode = explode('.', $token); - $info = $fake_user_id . '.' . $explode[1] . '.' . $explode[2] . '.' . $explode[3]; // 欲模擬帳號.本人帳號.有效開始時間.失效時間 - $signature = hash_hmac('md5', $info, $encryption_code); - return $token = $info . '.' . $signature; - } - - function menu ($from='tw',$type){ - $function_type = array( - "tw" => array( - # F角色菜单 - "F" => array( - "language" => "tw", - "type" => "manage", - "list" => array( - array("name" => "批量导入", "path" => "http://192.168.0.12/wms/excel-upload"), - ), - "note" => "none", - "token" => "" - ), - ) - ); - - - return $function_type[$from][$type]; - - } - - /** - * 依帳號類別檢視功能目錄 - */ - function menu_v2($atype="") { - global $link; - - if (!$atype) return; - $sql = "select main_menu, sub_menu, sub_menu_eng, mlink from menu where accounttype = '$atype' and status = 'Y' order by main_menu_seq, sub_menu_seq"; - $res = mysqli_query($link, $sql); - while ($row = mysqli_fetch_assoc($res)) { - $arr[$row["main_menu"]][$row["sub_menu"]][$row["sub_menu_eng"]] = $row["mlink"]; - } - mysqli_free_result($res); - $str = json_encode($arr, JSON_UNESCAPED_UNICODE); - return $str; - } - - /** - * 依帳號檢視功能目錄 - * 管理者可看到全部選單 - * 其餘人員依account_auth決定可檢視的選單 - */ - function menu_v3($aid="", $accounttype) { - global $link; - - if (!$aid) return; - $str = ""; - $arr = $menu_arr = []; - - $sql_cmd = ($accounttype == "E") ? "" : "where status = 'Y'"; - $sql = "select main_menu, sub_menu, sub_menu_eng, mlink from menu $sql_cmd order by main_menu_seq, sub_menu_seq"; - - $res = mysqli_query($link, $sql); - while ($row = mysqli_fetch_assoc($res)) { - $menu_arr[$row["mlink"]]["main_menu"] = $row["main_menu"]; - $menu_arr[$row["mlink"]]["sub_menu"] = $row["sub_menu"]; - $menu_arr[$row["mlink"]]["sub_menu_eng"] = $row["sub_menu_eng"]; - } - mysqli_free_result($res); - - $sql = "select permission from account_auth where accountid = '$aid'"; - $res = mysqli_query($link, $sql); - $row = mysqli_fetch_row($res); - $permission = empty($row)? json_encode([]): $row[0]; // $permission = $row[0]; //P0044 修改于2023/6/13 16:30 - - $permission_arr = json_decode($permission, true); - foreach ($menu_arr as $key => $val) { - if (($accounttype == "E") || !empty($permission_arr[$key])) { - $arr[$val["main_menu"]][$val["sub_menu"]][$val["sub_menu_eng"]] = $key; - } - } - if (!empty($arr)) $str = json_encode($arr, JSON_UNESCAPED_UNICODE); - /* - if ($permission_arr) { - foreach ($menu_arr as $key => $val) { - if ($permission_arr[$key]) { - $arr[$val["main_menu"]][$val["sub_menu"]][$val["sub_menu_eng"]] = $key; - } - } - if (!empty($arr)) $str = json_encode($arr, JSON_UNESCAPED_UNICODE); - } - */ - mysqli_free_result($res); - - return $str; - /* - $str = ""; - $sql = "select a.id, a.accountid, m.auth_content from account a, menu_auth m where a.accountid = '$aid' and a.accountid = m.accountid and m.status = 'Y'"; - $res = mysqli_query($link, $sql); - if ($row = mysqli_fetch_row($res)) { - list($id, $accountid, $auth_content) = $row; - $auth_arr = json_decode($auth_content, true); - $menuid_arr = array_keys($auth_arr); - if ($menuid_arr) { - $arr = []; - $menuid_str = implode(",", $menuid_arr); - $sql2 = "select id, main_menu, sub_menu, sub_menu_eng, link from menu_tree where id in ($menuid_str) and status = 'Y' order by main_menu_seq, sub_menu_seq"; - $res2 = mysqli_query($link, $sql2); - while ($row2 = mysqli_fetch_assoc($res2)) { - $arr[$row2["main_menu"]][$row2["sub_menu"]][$row2["sub_menu_eng"]] = $row2["link"]; // R+W - if ($auth_arr[$row2["id"]] == "N") $arr[$row2["main_menu"]][$row2["sub_menu"]][$row2["sub_menu_eng"]] = "";//"/wms/forbidden.php"; // R - } - mysqli_free_result($res2); - $str = json_encode($arr, JSON_UNESCAPED_UNICODE); - } - } - mysqli_free_result($res); - - return $str; - */ - } + $explode[3]) { + $data['user_id'] = ''; + $data['code'] = '401'; + $data['message'] = 'Token已过期,请重新登录'; + return $data; + } + if (($true_signature == $explode[4])) { + $data['user_id'] = $explode[0]; + $data['code'] = '200'; + $data['message'] = 'Token合法'; + return $data; + } else { + $data['user_id'] = ''; + $data['code'] = '400'; + $data['message'] = 'Token不合法'; + return $data; + } + } else { + $data['user_id'] = ''; + $data['code'] = '400'; + $data['message'] = 'Token不合法'; + return $data; + } + } +//生成登录记录 + function save_log_response($source_flag='web', $account, $response_result){ + # 储存纪录并输出 + #echo date("Y-m-d"); + $file_path = "account_log/" . $account . "-" . date("Y-m-d") . ".ini"; + $data = serialize($response_result). date("H:i:s") . "\n"; + $fp = fopen($file_path,"a"); # 如果档案不存在择尝试建立再写入 + fwrite($fp, $data); + fclose($fp); + if ($source_flag == "web"){ +// header("Location: custom-create.php?function_list=" . serialize($response_result) . +// "&token=" . $response_result["token"]); #请输入使用者名称密码 +// exit(); + return true; + }else{ +// echo json_encode($response_result, JSON_UNESCAPED_UNICODE); + return false; + } + + /* + if ($source_flag == "app"){ + echo json_encode($response_result, JSON_UNESCAPED_UNICODE); + }elseif ($source_flag == "web"){ + header("Location: api-account-reply-functions.php?function_list=" . serialize($response_result) . + "&token=" . $response_result["token"]); #请输入使用者名称密码 + exit(); + } + */ + } + +//生成token + function CreateToken($user_id, $user_name) { + date_default_timezone_set("Asia/Taipei"); + $start_time = date("Y-m-d H:i:s"); + $end_time = date('Y-m-d H:i:s',strtotime('+24 hour')); #设定24小时 + $info = $user_id . '.' . base64_encode(urlencode($user_name)) . '.' . $start_time . '.' . $end_time; //设置token过期时间为一天 + $encryption_code = "MASADA!^***"; + //根据以上信息信息生成签名(密钥为 SIGNATURE 自定义全局常量) + $signature = hash_hmac('md5', $info, $encryption_code); + //最后将这两部分拼接起来,得到最终的Token字符串 + return $token = $info . '.' . $signature; + } +//生成菜单 + + /** + * 將模擬帳號寫入token + */ + function FakeToken($fake_user_id, $token) { + date_default_timezone_set("Asia/Taipei"); + $encryption_code = "MASADA!^***"; + $time = date("Y-m-d H:i:s"); + $explode = explode('.', $token); + $info = $fake_user_id . '.' . $explode[1] . '.' . $explode[2] . '.' . $explode[3]; // 欲模擬帳號.本人帳號.有效開始時間.失效時間 + $signature = hash_hmac('md5', $info, $encryption_code); + return $token = $info . '.' . $signature; + } + + function menu ($from='tw',$type){ + $function_type = array( + "tw" => array( + # F角色菜单 + "F" => array( + "language" => "tw", + "type" => "manage", + "list" => array( + array("name" => "批量导入", "path" => "http://192.168.0.12/wms/excel-upload"), + ), + "note" => "none", + "token" => "" + ), + ) + ); + + + return $function_type[$from][$type]; + + } + + /** + * 依帳號類別檢視功能目錄 + */ + function menu_v2($atype="") { + global $link; + + if (!$atype) return; + $sql = "select main_menu, sub_menu, sub_menu_eng, mlink from menu where accounttype = '$atype' and status = 'Y' order by main_menu_seq, sub_menu_seq"; + $res = mysqli_query($link, $sql); + while ($row = mysqli_fetch_assoc($res)) { + $arr[$row["main_menu"]][$row["sub_menu"]][$row["sub_menu_eng"]] = $row["mlink"]; + } + mysqli_free_result($res); + $str = json_encode($arr, JSON_UNESCAPED_UNICODE); + return $str; + } + + /** + * 依帳號檢視功能目錄 + * 管理者可看到全部選單 + * 其餘人員依account_auth決定可檢視的選單 + */ + function menu_v3($aid="", $accounttype) { + global $link; + + if (!$aid) return; + $str = ""; + $arr = $menu_arr = []; + + $sql_cmd = ($accounttype == "E") ? "" : "where status = 'Y'"; + $sql = "select main_menu, sub_menu, sub_menu_eng, mlink from menu $sql_cmd order by main_menu_seq, sub_menu_seq"; + + $res = mysqli_query($link, $sql); + while ($row = mysqli_fetch_assoc($res)) { + $menu_arr[$row["mlink"]]["main_menu"] = $row["main_menu"]; + $menu_arr[$row["mlink"]]["sub_menu"] = $row["sub_menu"]; + $menu_arr[$row["mlink"]]["sub_menu_eng"] = $row["sub_menu_eng"]; + } + mysqli_free_result($res); + + $sql = "select permission from account_auth where accountid = '$aid'"; + $res = mysqli_query($link, $sql); + $row = mysqli_fetch_row($res); + $permission = empty($row)? json_encode([]): $row[0]; // $permission = $row[0]; //P0044 修改于2023/6/13 16:30 + + $permission_arr = json_decode($permission, true); + foreach ($menu_arr as $key => $val) { + if (($accounttype == "E") || !empty($permission_arr[$key])) { + $arr[$val["main_menu"]][$val["sub_menu"]][$val["sub_menu_eng"]] = $key; + } + } + if (!empty($arr)) $str = json_encode($arr, JSON_UNESCAPED_UNICODE); + /* + if ($permission_arr) { + foreach ($menu_arr as $key => $val) { + if ($permission_arr[$key]) { + $arr[$val["main_menu"]][$val["sub_menu"]][$val["sub_menu_eng"]] = $key; + } + } + if (!empty($arr)) $str = json_encode($arr, JSON_UNESCAPED_UNICODE); + } + */ + mysqli_free_result($res); + + return $str; + /* + $str = ""; + $sql = "select a.id, a.accountid, m.auth_content from account a, menu_auth m where a.accountid = '$aid' and a.accountid = m.accountid and m.status = 'Y'"; + $res = mysqli_query($link, $sql); + if ($row = mysqli_fetch_row($res)) { + list($id, $accountid, $auth_content) = $row; + $auth_arr = json_decode($auth_content, true); + $menuid_arr = array_keys($auth_arr); + if ($menuid_arr) { + $arr = []; + $menuid_str = implode(",", $menuid_arr); + $sql2 = "select id, main_menu, sub_menu, sub_menu_eng, link from menu_tree where id in ($menuid_str) and status = 'Y' order by main_menu_seq, sub_menu_seq"; + $res2 = mysqli_query($link, $sql2); + while ($row2 = mysqli_fetch_assoc($res2)) { + $arr[$row2["main_menu"]][$row2["sub_menu"]][$row2["sub_menu_eng"]] = $row2["link"]; // R+W + if ($auth_arr[$row2["id"]] == "N") $arr[$row2["main_menu"]][$row2["sub_menu"]][$row2["sub_menu_eng"]] = "";//"/wms/forbidden.php"; // R + } + mysqli_free_result($res2); + $str = json_encode($arr, JSON_UNESCAPED_UNICODE); + } + } + mysqli_free_result($res); + + return $str; + */ + } } \ No newline at end of file diff --git a/wms/T8_APItest.php b/wms/T8_APItest.php index d327c6e5..6f89ee68 100644 --- a/wms/T8_APItest.php +++ b/wms/T8_APItest.php @@ -1,91 +1,91 @@ - - \ No newline at end of file diff --git a/wms/T8_Authorization.php b/wms/T8_Authorization.php index 0a18e7ed..f383ee47 100644 --- a/wms/T8_Authorization.php +++ b/wms/T8_Authorization.php @@ -1,37 +1,37 @@ - - - - + + + \ No newline at end of file diff --git a/wms/T8_assemble_apply.php b/wms/T8_assemble_apply.php index 293d0fd3..fea8f22b 100644 --- a/wms/T8_assemble_apply.php +++ b/wms/T8_assemble_apply.php @@ -1,71 +1,71 @@ - - \ No newline at end of file diff --git a/wms/T8_purBillOrder_search.php b/wms/T8_purBillOrder_search.php index e3ff95f4..91ebfa26 100644 --- a/wms/T8_purBillOrder_search.php +++ b/wms/T8_purBillOrder_search.php @@ -1,23 +1,23 @@ -query($sql_purBillOrder); -//每筆採購單資料 -foreach($purMaster as $master){ - //print_r($master); - $BillNo = $master['BillNo']; - - //每筆採購單明細資料 - $sql_purDetail = " - SELECT * FROM purBillOrderDetail WHERE BillNo = '$BillNo'"; - $purDetail = $conn->query($sql_purDetail); - foreach($purDetail as $detail){ - print_r($detail); - } - echo "
----------------------
"; - -} - +query($sql_purBillOrder); +//每筆採購單資料 +foreach($purMaster as $master){ + //print_r($master); + $BillNo = $master['BillNo']; + + //每筆採購單明細資料 + $sql_purDetail = " + SELECT * FROM purBillOrderDetail WHERE BillNo = '$BillNo'"; + $purDetail = $conn->query($sql_purDetail); + foreach($purDetail as $detail){ + print_r($detail); + } + echo "
----------------------
"; + +} + diff --git a/wms/T8_purRequestOrder_create.php b/wms/T8_purRequestOrder_create.php index 2b441114..4df7938a 100644 --- a/wms/T8_purRequestOrder_create.php +++ b/wms/T8_purRequestOrder_create.php @@ -1,45 +1,45 @@ -query($sql); +query($sql); $conn ->query($sql_sub); \ No newline at end of file diff --git a/wms/account-create.php b/wms/account-create.php index 89f2715d..73d8f839 100644 --- a/wms/account-create.php +++ b/wms/account-create.php @@ -1,180 +1,180 @@ - - -
- - Please fill up the required field!

"; - } else { - echo "

Record has added successfully

"; - } - } - */ - ?> - - - -
"> - - -
- - - - -
- -
- - - -
- -
- - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - -
- -
- - -
- -
- - -
- -
- - - -
- -
- - - -
-
- - -
-
- - -
-
- - -

-
- -
- - -

-
- -
- -
- - -
-
- - + + +
+ + Please fill up the required field!

"; + } else { + echo "

Record has added successfully

"; + } + } + */ + ?> + + + +
"> + + +
+ + + + +
+ +
+ + + +
+ +
+ + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + + +
+ +
+ + + +
+
+ + +
+
+ + +
+
+ + +

+
+ +
+ + +

+
+ +
+ +
+ + +
+
+ + diff --git a/wms/account-delete.php b/wms/account-delete.php index 84654d95..811f23a8 100644 --- a/wms/account-delete.php +++ b/wms/account-delete.php @@ -1,19 +1,19 @@ - \ No newline at end of file diff --git a/wms/account-edit.php b/wms/account-edit.php index 1d10b8f7..3892d111 100644 --- a/wms/account-edit.php +++ b/wms/account-edit.php @@ -1,173 +1,173 @@ -getMessage(), "\n"; - } -*/ - foreach($data as $data) : -?> - -
-
- - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
-
- - -
-
- - -
-
- - -
- - -
- -
- -
-
- - +getMessage(), "\n"; + } +*/ + foreach($data as $data) : +?> + +
+
+ + +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+ + +
+ +
+ +
+
+ + diff --git a/wms/account-index-submit.php b/wms/account-index-submit.php index a00176f3..26e75cc4 100644 --- a/wms/account-index-submit.php +++ b/wms/account-index-submit.php @@ -1,85 +1,85 @@ -sendx($subject, $em_body, $sendlist, "永佳捷科技", "", $file); - echo json_encode([1, "信件發送成功"]); -} +sendx($subject, $em_body, $sendlist, "永佳捷科技", "", $file); + echo json_encode([1, "信件發送成功"]); +} diff --git a/wms/account-index.php b/wms/account-index.php index df0c2d3f..acba0023 100644 --- a/wms/account-index.php +++ b/wms/account-index.php @@ -1,198 +1,198 @@ - "客戶", "B" => "保養人員", "C" => "檢查人員", "D" => "契約人員", "M" => "員工", "E" => "管理員(IT)", "X" => "未分類"]; #A=客戶 B=保養人員 C=檢查人員 D=契約人員 E=管理人員 M=永佳捷員工 X=未分類 - -// 工務總處、王凱欣可瀏覽全部資料 -$sql = "select department_id from account where accountid = '$user_id'"; -$res = mysqli_query($link, $sql); -$row = mysqli_fetch_row($res); -$user_department_id = $row[0]; -mysqli_free_result($res); - -// 設置一個空陣列來放資料 -$data = array(); -// sql語法存在變數中 -$sql_cmd = sql_myself($user_id); -if ($user_department_id == "501" || $user_id == "M0105") $sql_cmd = ""; -$sql = "SELECT * FROM account $sql_cmd ORDER BY id"; -// 用mysqli_query方法執行(sql語法)將結果存在變數中 -$data = mysqli_query($link, $sql); -?> - - - -

- - - -

-Please fill up the required field!

"; - } else { - header("Location:account-index.php"); - } - } - -?> - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
項次帳號類型帳號姓名電話地址電子郵件Line ID微信id遠端協助維修ID直屬主管建檔人建檔時間修改新人資料
- 連結 -

- - - -

-
- -
-
- -There is no record!"; -endif; - -#代表結束連線 -mysqli_close($link); - -include "footer.php"; - + "客戶", "B" => "保養人員", "C" => "檢查人員", "D" => "契約人員", "M" => "員工", "E" => "管理員(IT)", "X" => "未分類"]; #A=客戶 B=保養人員 C=檢查人員 D=契約人員 E=管理人員 M=永佳捷員工 X=未分類 + +// 工務總處、王凱欣可瀏覽全部資料 +$sql = "select department_id from account where accountid = '$user_id'"; +$res = mysqli_query($link, $sql); +$row = mysqli_fetch_row($res); +$user_department_id = $row[0]; +mysqli_free_result($res); + +// 設置一個空陣列來放資料 +$data = array(); +// sql語法存在變數中 +$sql_cmd = sql_myself($user_id); +if ($user_department_id == "501" || $user_id == "M0105") $sql_cmd = ""; +$sql = "SELECT * FROM account $sql_cmd ORDER BY id"; +// 用mysqli_query方法執行(sql語法)將結果存在變數中 +$data = mysqli_query($link, $sql); +?> + + + +

+ + + +

+Please fill up the required field!

"; + } else { + header("Location:account-index.php"); + } + } + +?> + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
項次帳號類型帳號姓名電話地址電子郵件Line ID微信id遠端協助維修ID直屬主管建檔人建檔時間修改新人資料
+ 連結 +

+ + + +

+
+ +
+
+ +There is no record!"; +endif; + +#代表結束連線 +mysqli_close($link); + +include "footer.php"; + ?> \ No newline at end of file diff --git a/wms/account-receivable-check.php b/wms/account-receivable-check.php index ce07ccdc..6ddf7a79 100644 --- a/wms/account-receivable-check.php +++ b/wms/account-receivable-check.php @@ -1,245 +1,199 @@ - - -
- -
- - - -
- -
-
-
-

-
-
-
-
- - -
-
- - -
-
- - -
-
- - -
- -
-
-
- - -
-
- - -
-
- - -
-
-
- - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
簽約款二次款貨抵工地款安裝款試車款官檢款交車款尾款
合約金額
目前應收
-
- - - - - - - - - - - - - - - - - - - - - -
目前應收已開發票金額未開發票金額已收金額未收金額
-
- - - -
-
- - - - -
- - - - - - - - - - - - - - - - - $invoice) { ?> - - - - - - - - - - - - - - - -
發票號碼發票日期發票狀態發票金額收款日期收款金額內含手續費
-
- \ No newline at end of file diff --git a/wms/account-receivable-contract.php b/wms/account-receivable-contract.php index 9eda5895..f37920fb 100644 --- a/wms/account-receivable-contract.php +++ b/wms/account-receivable-contract.php @@ -1,39 +1,39 @@ -"; -$sql_contract = "SELECT a.BillNo, a.PayStage, a.PlanPayAmt,s.BizPartnerId,c.BizPartnerName -FROM salOrderStagePay AS a -LEFT JOIN salSalesOrder AS s on a.BillNo = s.BillNo -LEFT JOIN comBusinessPartner as c ON s.BizPartnerId=c.BizPartnerId -WHERE s.ModeId = 'M' AND (s.CurrentState=2 OR s.CurrentState=4)"; - -$contract = $conn->query($sql_contract); -foreach ($contract as $cont) { - if ($cont['BillNo'] == 'SO20230801002') { - $BillNo = 'M231067'; - }else{ - $BillNo = $cont['BillNo']; - }; - $PayStage = $cont['PayStage']; - $PayAmount = $cont['PlanPayAmt']; - $partnerName = $cont['BizPartnerName']; - if(isset($arrayData[$BillNo])){ - array_push($arrayData[$BillNo], $PayStage); - array_push($arrayData[$BillNo], $PayAmount); - - }else{ - $arrayData[$BillNo][0] = $BillNo; - $arrayData[$BillNo][1] = $partnerName; - array_push($arrayData[$BillNo], $PayStage); - array_push($arrayData[$BillNo], $PayAmount); - - } -}; -foreach($arrayData as $data){ - foreach($data as $value){ - echo $value.";"; - } - echo "
"; +"; +$sql_contract = "SELECT a.BillNo, a.PayStage, a.PlanPayAmt,s.BizPartnerId,c.BizPartnerName +FROM salOrderStagePay AS a +LEFT JOIN salSalesOrder AS s on a.BillNo = s.BillNo +LEFT JOIN comBusinessPartner as c ON s.BizPartnerId=c.BizPartnerId +WHERE s.ModeId = 'M' AND (s.CurrentState=2 OR s.CurrentState=4)"; + +$contract = $conn->query($sql_contract); +foreach ($contract as $cont) { + if ($cont['BillNo'] == 'SO20230801002') { + $BillNo = 'M231067'; + }else{ + $BillNo = $cont['BillNo']; + }; + $PayStage = $cont['PayStage']; + $PayAmount = $cont['PlanPayAmt']; + $partnerName = $cont['BizPartnerName']; + if(isset($arrayData[$BillNo])){ + array_push($arrayData[$BillNo], $PayStage); + array_push($arrayData[$BillNo], $PayAmount); + + }else{ + $arrayData[$BillNo][0] = $BillNo; + $arrayData[$BillNo][1] = $partnerName; + array_push($arrayData[$BillNo], $PayStage); + array_push($arrayData[$BillNo], $PayAmount); + + } +}; +foreach($arrayData as $data){ + foreach($data as $value){ + echo $value.";"; + } + echo "
"; } \ No newline at end of file diff --git a/wms/account-receivable-excel.php b/wms/account-receivable-excel.php index c6ac37d9..060167d4 100644 --- a/wms/account-receivable-excel.php +++ b/wms/account-receivable-excel.php @@ -13,46 +13,43 @@ foreach ($Bill as $key => $value) { // for ($i = 0; $i < 17; $i++) { // $value[$i] = (isset($value[$i])) ? $value[$i] : 0; // } - $value['sign'][3] = (isset($value['sign'][3])) ? $value['sign'][3] : 0; - $value['second'][3] = (isset($value['second'][3])) ? $value['second'][3] : 0; - $value['arrive'][3] = (isset($value['arrive'][3])) ? $value['arrive'][3] : 0; - $value['install'][3] = (isset($value['install'][3])) ? $value['install'][3] : 0; - $value['tryrun'][3] = (isset($value['tryrun'][3])) ? $value['tryrun'][3] : 0; - $value['check'][3] = (isset($value['check'][3])) ? $value['check'][3] : 0; - $value['delivery'][3] = (isset($value['delivery'][3])) ? $value['delivery'][3] : 0; - $value['final'][3] = (isset($value['final'][3])) ? $value['final'][3] : 0; - - $array_data[$key] = [ - $key, $value[1], $value[2], $value[4], $value[5], $value[7], $value[8], $value[6], - $value['sign'][1], $value['second'][1], $value['arrive'][1], $value['install'][1], $value['tryrun'][1], $value['check'][1], $value['delivery'][1], $value['final'][1], - $value['sign'][3], $value['second'][3], $value['arrive'][3], $value['install'][3], $value['tryrun'][3], $value['check'][3], $value['delivery'][3], $value['final'][3], - $value['receivable_budget'], $value['invoice_budget'], $value['received_budget'], str_replace('
', '; ', $value['facilities']) - ]; + $array_data[$key][0] = $key; + $array_data[$key][1] = $value[1]; + $array_data[$key][2] = $value[2]; + $array_data[$key][3] = $value[4]; + $array_data[$key][4] = $value[5]; + $array_data[$key][5] = $value[7]; + $array_data[$key][6] = $value[8]; + $array_data[$key][7] = $value[6]; + $array_data[$key][8] = $value['sign'][1]; + $array_data[$key][9] = $value['second'][1]; + $array_data[$key][10] = $value['arrive'][1]; + $array_data[$key][11] = $value['install'][1]; + $array_data[$key][12] = $value['tryrun'][1]; + $array_data[$key][13] = $value['check'][1]; + $array_data[$key][14] = $value['delivery'][1]; + $array_data[$key][15] = $value['final'][1]; + $array_data[$key][16] = $value['receivable_budget']; + $array_data[$key][17] = str_replace('
', '; ', $value['facilities']); } $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $colomnHeader = [ - '合約號', '部門', '經理', '營業員', '客戶名稱', '統一編號', '聯絡地址', '抬頭', - '簽約款', '二次款', '貨抵工地款', '安裝款', '試車款', '官檢款', '交車款', '尾款', - '目前應收簽約款', '目前應收二次款', '目前應收貨抵工地款', '目前應收安裝款', '目前應收試車款', '目前應收官檢款', '目前應收交車款', '目前應收尾款', - '目前應收', '已開發票金額', '已收金額', '作番狀態' + '合約號', '部門', '經理', '營業員', '客戶名稱', '統一編號', '聯絡地址', '抬頭', '簽約款', + '二次款', '貨抵工地款', '安裝款', '試車款', '官檢款', '交車款', '尾款', '目前應收', '作番狀態' ]; $sheet->fromArray($colomnHeader, NULL, 'A1'); $rowIndex = 2; foreach ($array_data as $key => $value) { $sheet->fromArray([$value], NULL, 'A' . $rowIndex); - $sheet->getStyle('AB' . $rowIndex)->getAlignment()->setWrapText(true); - $column = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA']; - foreach($column as $col) { - $sheet->getColumnDimension($col)->setAutoSize(true); - } + $sheet->getStyle('R' . $rowIndex)->getAlignment()->setWrapText(true); $rowIndex++; } $writer = new Xlsx($spreadsheet); -$excelFileName = 'account-receivable-test.xlsx'; +$excelFileName = 'account-receivable.xlsx'; $writer->save($excelFileName); -echo $excelFileName; + ?> - \ No newline at end of file + \ No newline at end of file diff --git a/wms/account-receivable-index.php b/wms/account-receivable-index.php index 762335a9..cc56a4d4 100644 --- a/wms/account-receivable-index.php +++ b/wms/account-receivable-index.php @@ -4,73 +4,56 @@ include "header.php"; $follower = find_follow($user_id); $arrayData = []; $receivable_array = []; -// T8發票 (有專案的發票) -$sql_invoice = "SELECT DISTINCT -a.InvoiceNo, a.InvoiceTime,a.OAmountWithTax,a.InvoiceState, -b.ProjectId -FROM arSellInvoice as a -LEFT JOIN arSellInvoiceMaterial as b -ON a.BillNo=b.BillNo -WHERE DATALENGTH(b.ProjectId)>0"; - -// T8核銷 -$sql_received = "SELECT -a.BillNo, a.WriteOffBizPartnerId,a.PayWriteOffOAmount, -b.FromBillDate AS ReceivedDate,b.CurrWOFeeOAmt AS Fee, -c.OrderBillNo, c.checkBillNo, c.InvoiceNo, c.BillDate AS CheckBillDate -FROM arWriteOffBill AS a -LEFT JOIN arWriteOffBillRec AS b ON a.BillNo=b.BillNo -LEFT JOIN - (SELECT temp1.*,arWriteOffBillDetail.* FROM arWriteOffBillDetail - LEFT JOIN - (SELECT - arCheckBill.BillNo AS checkBillNo, arCheckBill.BillDate,arCheckBillInvInfo.InvoiceNo - FROM arCheckBill - LEFT JOIN arCheckBillInvInfo - ON arCheckBill.InvoiceBillNo=arCheckBillInvInfo.InvoiceBillNo) AS temp1 - ON temp1.checkBillNo = arWriteOffBillDetail.FromBillNo) AS c -ON a.BillNo=c.BillNo -WHERE DATALENGTH(c.OrderBillNo) >0"; +$sql_received = "SELECT * FROM arWriteOffBillDetail WHERE (DATALENGTH(OrderBillNo) >0)"; $sql_contract = "SELECT a.BillNo, a.PayStage, a.PlanPayAmt, a.PlanPayDate,s.BizPartnerId,c.BizPartnerName, s.PersonId, c.EnterpriseName, c.TaxNo, c.ContactAddress FROM salOrderStagePay AS a LEFT JOIN salSalesOrder AS s on a.BillNo = s.BillNo LEFT JOIN comBusinessPartner AS c ON s.BizPartnerId=c.BizPartnerId WHERE s.ModeId = 'M' AND (s.CurrentState=2 OR s.CurrentState=4) "; - -// 期初收款資訊 -$sql_opening = " -SELECT * FROM account_received "; - -// 設定權限:看到自己的/下屬的,資訊處跟財會處可以看全部的 if (!(in_array(accountidToDepartId($user_id), array('220', '210')))) { $sql_contract .= "AND (s.PersonId = '$user_id'"; $sql_received .= " AND (PersonId = '$user_id'"; - $sql_opening .= " OR person_id = '$user_id'"; if (count($follower) > 0) { $column_str = "('$user_id'" . ",'"; $column_str .= implode("','", $follower); $column_str .= "')"; $sql_contract .= " OR s.PersonId IN $column_str)"; $sql_received .= " OR PersonId IN $column_str)"; - $sql_opening .= " OR person_id IN $column_str)"; } else { $sql_contract .= ")"; $sql_received .= ")"; - $sql_opening .= ")"; }; } - -$contract = $conn->query($sql_contract); -$received_array = $conn->query($sql_received); -$opening_data = mysqli_query($link, $sql_opening); -$invoice_data = $conn->query($sql_invoice); - - -// 合約收款階段內容分類 $sign60 = array('簽訂後60天', '簽約60日', '簽約後60天', '簽訂後60日內', '訂金支付後60天'); $sign90 = array('簽約後90天', '簽約後90日', '簽訂後90天'); $sign120 = array('簽約後120天', '簽約後120日', '簽訂後120天'); +$contract = $conn->query($sql_contract); +$received_array = $conn->query($sql_received); + +// 取收款資料 account_received +// $received_data = mysqli_query($link, $sql_received); +// foreach ($received_data as $received) { +// if ($received['BillNo'] == 'SO20230801001') { +// $BillNo = 'M230947'; +// } elseif ($received['BillNo'] == 'SO20230801002') { +// $BillNo = 'M231067'; +// } else { +// $BillNo = $received['BillNo']; +// }; +// if (isset($received_array[$BillNo])) { +// $received_array[$BillNo][0] += $received['invoice_amount']; +// $received_array[$BillNo][1] += $received['received_amount']; +// $received['status'] = (intval($received['status']) < 4) ? intval($received['status']) : 0; +// if ($received_array[$BillNo][2] < intval($received['status'])) { +// $received_array[$BillNo][2] = intval($received['status']); +// } +// } else { +// $received_array[$BillNo][0] = $received['invoice_amount']; +// $received_array[$BillNo][1] = $received['received_amount']; +// $received_array[$BillNo][2] = (intval($received['status']) < 4) ? intval($received['status']) : 0; +// } +// } // 將T8合約收款階段資料依據款別分類放進arraData裡 foreach ($contract as $cont) { @@ -88,7 +71,7 @@ foreach ($contract as $cont) { $EnterpriseName = $cont['EnterpriseName']; $TaxNo = $cont['TaxNo']; $ContactAddress = $cont['ContactAddress']; - //['sign'] 0 款項名稱 1 簽約金額 2 簽約日期 3 應收金額 min 最早應收月份 max 最晚應收月份 ['second'] 0 二次款名 1 二次款金額 2 收款日期 ['arrive'] 0 貨抵工地款名稱 1 貨抵工地款金額 2 貨抵工地收款日期 ['install'] 0 安裝款名 1 安裝金額 2 安裝收款日期 + //['sign'] 0 款項名稱 1 簽約金額 2 簽約日期 ['second'] 0 二次款名 1 二次款金額 2 收款日期 ['arrive'] 0 貨抵工地款名稱 1 貨抵工地款金額 2 貨抵工地收款日期 ['install'] 0 安裝款名 1 安裝金額 2 安裝收款日期 //['tryrun'] 0 試車款名 1試車金額 2 試車收款日期 ['check'] 0 官檢款名 1 官檢金額 2 官檢收款日期 ['delivery'] 0 交車款名 1 交車金額 2 交車收款日期 ['final'] 0 尾款名 1 尾款金額 2 尾款收款日期 if (!(isset($arrayData[$BillNo]))) { // 0 部門id 1 部門名稱 2 經理名稱 3 營業員id 4 營業員名稱 5 客戶名稱 6 抬頭 7 統編 8 通訊地址 @@ -97,13 +80,8 @@ foreach ($contract as $cont) { $arrayData[$BillNo][6] = $EnterpriseName; $arrayData[$BillNo][7] = $TaxNo; $arrayData[$BillNo][8] = $ContactAddress; - $arrayData[$BillNo]['total_budget'] = 0; - $arrayData[$BillNo]['invoice'] = array(); - $arrayData[$BillNo]['received_budget'] = 0; - $arrayData[$BillNo]['invoice_budget'] = 0; + $arrayData[$BillNo]['received'] = array(); $arrayData[$BillNo]['sign'][1] = $arrayData[$BillNo]['second'][1] = $arrayData[$BillNo]['arrive'][1] = $arrayData[$BillNo]['install'][1] = $arrayData[$BillNo]['tryrun'][1] = $arrayData[$BillNo]['check'][1] = $arrayData[$BillNo]['delivery'][1] = $arrayData[$BillNo]['final'][1] = 0; - $arrayData[$BillNo]['sign']['min'] = $arrayData[$BillNo]['second']['min'] = $arrayData[$BillNo]['arrive']['min'] = $arrayData[$BillNo]['install']['min'] = $arrayData[$BillNo]['tryrun']['min'] = $arrayData[$BillNo]['check']['min'] = $arrayData[$BillNo]['delivery']['min'] = $arrayData[$BillNo]['final']['min'] = array(); - $arrayData[$BillNo]['sign']['max'] = $arrayData[$BillNo]['second']['max'] = $arrayData[$BillNo]['arrive']['max'] = $arrayData[$BillNo]['install']['max'] = $arrayData[$BillNo]['tryrun']['max'] = $arrayData[$BillNo]['check']['max'] = $arrayData[$BillNo]['delivery']['max'] = $arrayData[$BillNo]['final']['max'] = array(); $arrayData[$BillNo]['facilities'] = ""; $arrayData[$BillNo]['total_facility_num'] = $arrayData[$BillNo]['delivery_num'] = $arrayData[$BillNo]['check_num'] = $arrayData[$BillNo]['tryrun_num'] = $arrayData[$BillNo]['install_num'] = $arrayData[$BillNo]['arrive_num'] = $arrayData[$BillNo]['second_num'] = $arrayData[$BillNo]['receivable_budget'] = 0; } @@ -111,7 +89,6 @@ foreach ($contract as $cont) { $arrayData[$BillNo]['second'][0] = $PayStage; $arrayData[$BillNo]['second'][1] = $PayAmount; $arrayData[$BillNo]['second'][2] = $PlanPayDate; - $arrayData[$BillNo]['total_budget'] += $PayAmount; if (isset($arrayData[$BillNo]['sign'][2]) && !is_null($arrayData[$BillNo]['sign'][2])) { $signtime = strtotime(strval($arrayData[$BillNo]['sign'][2])); if (in_array($PayStage, $sign60)) { @@ -136,43 +113,33 @@ foreach ($contract as $cont) { $arrayData[$BillNo]['sign'][0] = $PayStage; $arrayData[$BillNo]['sign'][1] = $PayAmount; $arrayData[$BillNo]['sign'][2] = $PlanPayDate; - $arrayData[$BillNo]['total_budget'] += $PayAmount; - array_push($arrayData[$BillNo]['sign']['min'], intval(substr($PlanPayDate, 4, 2))); - array_push($arrayData[$BillNo]['sign']['max'], intval(substr($PlanPayDate, 4, 2))); } elseif (stristr($PayStage, '試車')) { $arrayData[$BillNo]['tryrun'][0] = $PayStage; $arrayData[$BillNo]['tryrun'][1] = $PayAmount; $arrayData[$BillNo]['tryrun'][2] = $PlanPayDate; - $arrayData[$BillNo]['total_budget'] += $PayAmount; } elseif (stristr($PayStage, '安裝') || stristr($PayStage, '貨抵工地且完工')) { $arrayData[$BillNo]['install'][0] = $PayStage; $arrayData[$BillNo]['install'][1] = $PayAmount; $arrayData[$BillNo]['install'][2] = $PlanPayDate; - $arrayData[$BillNo]['total_budget'] += $PayAmount; } elseif (stristr($PayStage, '貨抵工地') || stristr($PayStage, '貨底工地')) { $arrayData[$BillNo]['arrive'][0] = $PayStage; $arrayData[$BillNo]['arrive'][1] = $PayAmount; $arrayData[$BillNo]['arrive'][2] = $PlanPayDate; - $arrayData[$BillNo]['total_budget'] += $PayAmount; } elseif (stristr($PayStage, '得合格函後6個月') || stristr($PayStage, '核可函取得後6個月') || stristr($PayStage, '交車')) { $arrayData[$BillNo]['delivery'][0] = $PayStage; $arrayData[$BillNo]['delivery'][1] = $PayAmount; $arrayData[$BillNo]['delivery'][2] = $PlanPayDate; - $arrayData[$BillNo]['total_budget'] += $PayAmount; } elseif (stristr($PayStage, '合格') || stristr($PayStage, '驗收') || stristr($PayStage, '許可') || stristr($PayStage, '核可')) { $arrayData[$BillNo]['check'][0] = $PayStage; $arrayData[$BillNo]['check'][1] = $PayAmount; $arrayData[$BillNo]['check'][2] = $PlanPayDate; - $arrayData[$BillNo]['total_budget'] += $PayAmount; } elseif (stristr($PayStage, '驗收完成')) { $arrayData[$BillNo]['final'][0] = $PayStage; $arrayData[$BillNo]['final'][1] = $PayAmount; $arrayData[$BillNo]['final'][2] = $PlanPayDate; - $arrayData[$BillNo]['total_budget'] += $PayAmount; } else { $arrayData[$BillNo]['other'][1] = $PayAmount; $arrayData[$BillNo]['other'][2] = $PlanPayDate; - $arrayData[$BillNo]['total_budget'] += $PayAmount; } } $sql = "SELECT @@ -222,24 +189,12 @@ foreach ($wipwhole_array as $wip) { $estimate_delivery_time = strtotime($wip['estimated_shipping_date']); $secondtime = $estimate_delivery_time - (30 * 86400); $secondtime = date('Ymd', $secondtime); - if (empty($wip['estimated_shipping_date'])) { - $arrayData[$wip['contractno']]['second']['min'] = 0; - } else { - array_push($arrayData[$wip['contractno']]['second']['max'], intval(substr($wip['estimated_shipping_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['second']['min'], intval(substr($wip['estimated_shipping_date'], 5, 2))); - } $arrayData[$wip['contractno']]['second'][2] = intval($secondtime); } elseif (isset($arrayData[$wip['contractno']]['second'][0]) && stristr($arrayData[$wip['contractno']]['second'][0], '出貨前90天')) { $estimate_delivery_time = strtotime($wip['estimated_shipping_date']); $secondtime = $estimate_delivery_time - (90 * 86400); $secondtime = date('Ymd', $secondtime); $arrayData[$wip['contractno']]['second'][2] = intval($secondtime); - if (empty($wip['estimated_shipping_date'])) { - $arrayData[$wip['contractno']]['second']['min'] = 0; - } else { - array_push($arrayData[$wip['contractno']]['second']['max'], intval(substr($wip['estimated_shipping_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['second']['min'], intval(substr($wip['estimated_shipping_date'], 5, 2))); - } } if ($wip['delivery_date'] != NULL) { $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['delivery_date'] . "已移交)
"; @@ -250,24 +205,6 @@ foreach ($wipwhole_array as $wip) { $arrayData[$wip['contractno']]['install_num'] += 1; $arrayData[$wip['contractno']]['arrive_num'] += 1; $arrayData[$wip['contractno']]['second_num'] += 1; - array_push($arrayData[$wip['contractno']]['delivery']['min'], intval(substr($wip['delivery_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['delivery']['max'], intval(substr($wip['delivery_date'], 5, 2))); - if (!empty($wip['official_check_date']) && $wip['official_check_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['check']['min'], intval(substr($wip['official_check_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['check']['max'], intval(substr($wip['official_check_date'], 5, 2))); - } - if (!empty($wip['tryrun_end_date']) && $wip['tryrun_end_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['tryrun']['min'], intval(substr($wip['tryrun_end_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['tryrun']['max'], intval(substr($wip['tryrun_end_date'], 5, 2))); - } - if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['install']['min'], intval(substr($wip['install_end_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['install']['max'], intval(substr($wip['install_end_date'], 5, 2))); - } - if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['arrive']['min'], intval(substr($wip['real_arrival_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['arrive']['max'], intval(substr($wip['real_arrival_date'], 5, 2))); - } } elseif ($wip['official_check_date'] != NULL) { $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['official_check_date'] . "官檢完畢)
"; $arrayData[$wip['contractno']]['total_facility_num'] += 1; @@ -276,20 +213,6 @@ foreach ($wipwhole_array as $wip) { $arrayData[$wip['contractno']]['install_num'] += 1; $arrayData[$wip['contractno']]['arrive_num'] += 1; $arrayData[$wip['contractno']]['second_num'] += 1; - array_push($arrayData[$wip['contractno']]['check']['min'], intval(substr($wip['official_check_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['check']['max'], intval(substr($wip['official_check_date'], 5, 2))); - if (!empty($wip['tryrun_end_date']) && $wip['tryrun_end_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['tryrun']['min'], intval(substr($wip['tryrun_end_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['tryrun']['max'], intval(substr($wip['tryrun_end_date'], 5, 2))); - } - if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['install']['min'], intval(substr($wip['install_end_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['install']['max'], intval(substr($wip['install_end_date'], 5, 2))); - } - if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['arrive']['min'], intval(substr($wip['real_arrival_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['arrive']['max'], intval(substr($wip['real_arrival_date'], 5, 2))); - } } elseif ($wip['tryrun_end_date'] != NULL) { $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['tryrun_end_date'] . "試車完畢)
"; $arrayData[$wip['contractno']]['total_facility_num'] += 1; @@ -297,41 +220,17 @@ foreach ($wipwhole_array as $wip) { $arrayData[$wip['contractno']]['install_num'] += 1; $arrayData[$wip['contractno']]['arrive_num'] += 1; $arrayData[$wip['contractno']]['second_num'] += 1; - if (!empty($wip['tryrun_end_date']) && $wip['tryrun_end_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['tryrun']['min'], intval(substr($wip['tryrun_end_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['tryrun']['max'], intval(substr($wip['tryrun_end_date'], 5, 2))); - } - if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['install']['min'], intval(substr($wip['install_end_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['install']['max'], intval(substr($wip['install_end_date'], 5, 2))); - } - if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['arrive']['min'], intval(substr($wip['real_arrival_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['arrive']['max'], intval(substr($wip['real_arrival_date'], 5, 2))); - } } elseif ($wip['install_end_date'] != NULL) { $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['install_end_date'] . "安裝完畢)
"; $arrayData[$wip['contractno']]['total_facility_num'] += 1; $arrayData[$wip['contractno']]['install_num'] += 1; $arrayData[$wip['contractno']]['arrive_num'] += 1; $arrayData[$wip['contractno']]['second_num'] += 1; - if (!empty($wip['install_end_date']) && $wip['install_end_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['install']['min'], intval(substr($wip['install_end_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['install']['max'], intval(substr($wip['install_end_date'], 5, 2))); - } - if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['arrive']['min'], intval(substr($wip['real_arrival_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['arrive']['max'], intval(substr($wip['real_arrival_date'], 5, 2))); - } } elseif ($wip['real_arrival_date'] != NULL) { $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['real_arrival_date'] . "貨抵工地)
"; $arrayData[$wip['contractno']]['total_facility_num'] += 1; $arrayData[$wip['contractno']]['arrive_num'] += 1; $arrayData[$wip['contractno']]['second_num'] += 1; - if (!empty($wip['real_arrival_date']) && $wip['real_arrival_date'] != NULL) { - array_push($arrayData[$wip['contractno']]['arrive']['min'], intval(substr($wip['real_arrival_date'], 5, 2))); - array_push($arrayData[$wip['contractno']]['arrive']['max'], intval(substr($wip['real_arrival_date'], 5, 2))); - } } elseif (($arrayData[$wip['contractno']]['second'] != NULL) && (isset($arrayData[$wip['contractno']]['second'][2])) && ($arrayData[$wip['contractno']]['second'][2] <= date('Ymd'))) { if ($wip['estimated_shipping_date'] != NULL) { $arrayData[$wip['contractno']]['facilities'] .= $wip['facilityno'] . " (" . $wip['estimated_shipping_date'] . "預計出貨日)
"; @@ -359,59 +258,18 @@ foreach ($wipwhole_array as $wip) { foreach ($arrayData as &$value) { if ($value['total_facility_num'] > 0) { - $month = 11; $value['receivable_budget'] = $value['sign'][1] + ($value['second'][1] * ($value['second_num'] / $value['total_facility_num'])) + ($value['arrive'][1] * ($value['arrive_num'] / $value['total_facility_num'])) + ($value['install'][1] * ($value['install_num'] / $value['total_facility_num'])) + ($value['tryrun'][1] * ($value['tryrun_num'] / $value['total_facility_num'])) + ($value['check'][1] * ($value['check_num'] / $value['total_facility_num'])) + (($value['delivery'][1] + $value['final'][1]) * ($value['delivery_num'] / $value['total_facility_num'])); - $value['sign'][3] = $value['sign'][1]; - $value['second'][3] = $value['second'][1] * ($value['second_num'] / $value['total_facility_num']); - $value['arrive'][3] = $value['arrive'][1] * ($value['arrive_num'] / $value['total_facility_num']); - $value['install'][3] = $value['install'][1] * ($value['install_num'] / $value['total_facility_num']); - $value['tryrun'][3] = $value['tryrun'][1] * ($value['tryrun_num'] / $value['total_facility_num']); - $value['check'][3] = $value['check'][1] * ($value['check_num'] / $value['total_facility_num']); - $value['delivery'][3] = $value['delivery'][1] * ($value['delivery_num'] / $value['total_facility_num']); - $value['final'][3] = $value['final'][1] * ($value['delivery_num'] / $value['total_facility_num']); - } - $value['sign']['max'] = empty($value['sign']['max']) ? 0 : (($month - max($value['sign']['max'])) < 0 ? 0 : ($month - max($value['sign']['max']))); - $value['sign']['min'] = empty($value['sign']['min']) ? 0 : (($month - min($value['sign']['min'])) < 0 ? 0 : ($month - min($value['sign']['min']))); - $value['second']['max'] = empty($value['second']['max']) ? 0 : (($month - max($value['second']['max'])) < 0 ? 0 : ($month - max($value['second']['max']))); - $value['second']['min'] = empty($value['second']['min']) ? 0 : (($month - min($value['second']['min'])) < 0 ? 0 : ($month - min($value['second']['min']))); - $value['arrive']['max'] = empty($value['arrive']['max']) ? 0 : (($month - max($value['arrive']['max'])) < 0 ? 0 : ($month - max($value['arrive']['max']))); - $value['arrive']['min'] = empty($value['arrive']['min']) ? 0 : (($month - min($value['arrive']['min'])) < 0 ? 0 : ($month - min($value['arrive']['min']))); - $value['install']['max'] = empty($value['install']['max']) ? 0 : (($month - max($value['install']['max'])) < 0 ? 0 : ($month - max($value['install']['max']))); - $value['install']['min'] = empty($value['install']['min']) ? 0 : (($month - min($value['install']['min'])) < 0 ? 0 : ($month - min($value['install']['min']))); - $value['tryrun']['max'] = empty($value['tryrun']['max']) ? 0 : (($month - max($value['tryrun']['max'])) < 0 ? 0 : ($month - max($value['tryrun']['max']))); - $value['tryrun']['min'] = empty($value['tryrun']['min']) ? 0 : (($month - min($value['tryrun']['min'])) < 0 ? 0 : ($month - min($value['tryrun']['min']))); - $value['check']['max'] = empty($value['check']['max']) ? 0 : (($month - max($value['check']['max'])) < 0 ? 0 : ($month - max($value['check']['max']))); - $value['check']['min'] = empty($value['check']['min']) ? 0 : (($month - min($value['check']['min'])) < 0 ? 0 : ($month - min($value['check']['min']))); - $value['delivery']['max'] = empty($value['delivery']['max']) ? 0 : (($month - max($value['delivery']['max'])) < 0 ? 0 : ($month - max($value['delivery']['max']))); - $value['delivery']['min'] = empty($value['delivery']['min']) ? 0 : (($month - min($value['delivery']['min'])) < 0 ? 0 : ($month - min($value['delivery']['min']))); - $value['final']['max'] = empty($value['final']['max']) ? 0 : (($month - max($value['final']['max'])) < 0 ? 0 : ($month - max($value['final']['max']))); - $value['final']['min'] = empty($value['final']['min']) ? 0 : (($month - min($value['final']['min'])) < 0 ? 0 : ($month - min($value['final']['min']))); -} -// [invoice][發票號碼][0 發票日期, 1 發票金額, 2 發票狀態, 3 收款日期, 4 收款金額, 5 手續費, 6 核銷單號] -foreach ($invoice_data as $invoice) { - if (isset($arrayData[$invoice['ProjectId']])) { - $arrayData[$invoice['ProjectId']]['invoice_budget'] += intval($invoice['OAmountWithTax']); - $arrayData[$invoice['ProjectId']]['invoice'][$invoice['InvoiceNo']] = [date("Ymd", strtotime($invoice['InvoiceTime'])), $invoice['OAmountWithTax'], $invoice['InvoiceState']]; } } +// array_push($arrayData[$wip['contractno']]['received'], ['assaaa',123124,'sdrfrqa']); -// 把核銷單的內容補到發票資料中 foreach ($received_array as $received) { - if ($received['OrderBillNo'] == 'SO20230801001') { - $BillNo = 'M230947'; - } elseif ($received['OrderBillNo'] == 'SO20230801002') { - $BillNo = 'M231067'; - } else { - $BillNo = $received['OrderBillNo']; - }; - if (isset($arrayData[$BillNo])) { - if (isset($arrayData[$BillNo]['invoice'][$received['InvoiceNo']])) { - $arrayData[$BillNo]['received_budget'] += $received['PayWriteOffOAmount']; - array_push($arrayData[$BillNo]['invoice'][$received['InvoiceNo']], date($received['ReceivedDate']), $received['PayWriteOffOAmount'], $received['Fee'], $received['BillNo']); - } + + if (isset($arrayData[$received['OrderBillNo']])) { + array_push($arrayData[$received['OrderBillNo']]['received'], [$received['BillNo'], $received['WriteOffBizPartnerId'], $received['OrderBillNo'],]); } } @@ -456,54 +314,30 @@ $data = json_encode($arrayData); } -
+ +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - + @@ -516,45 +350,19 @@ $data = json_encode($arrayData); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + --> + "; - } elseif ($affected == 0) { - echo ""; - } else { - echo "{$db_query} 語法執行失敗,錯誤訊息SSS: " . mysqli_error($link); - } -} + 0) { + // 如果有一筆以上代表有更新 + echo ""; + } elseif ($affected == 0) { + echo ""; + } else { + echo "{$db_query} 語法執行失敗,錯誤訊息SSS: " . mysqli_error($link); + } +} ?> \ No newline at end of file diff --git a/wms/account-record-update.php b/wms/account-record-update.php index 9746db8e..b78299b8 100644 --- a/wms/account-record-update.php +++ b/wms/account-record-update.php @@ -1,66 +1,66 @@ - 0) { - echo ""; - } elseif ($affected == 0) { - echo ""; - } else { - echo "{$db_query} 語法執行失敗,錯誤訊息SSS: " . mysqli_error($link); - } -} + 0) { + echo ""; + } elseif ($affected == 0) { + echo ""; + } else { + echo "{$db_query} 語法執行失敗,錯誤訊息SSS: " . mysqli_error($link); + } +} ?> \ No newline at end of file diff --git a/wms/account-user-input.php b/wms/account-user-input.php index aa3380c5..2af17727 100644 --- a/wms/account-user-input.php +++ b/wms/account-user-input.php @@ -1,65 +1,65 @@ - + diff --git a/wms/account_auth-create.php b/wms/account_auth-create.php index 4186c4e0..7448e57c 100644 --- a/wms/account_auth-create.php +++ b/wms/account_auth-create.php @@ -1,177 +1,177 @@ - - - -
- - Please fill up the required field!

"; - } else { - echo "

Record has added successfully

"; - } - } - */ - ?> - - - -
"> -
- - -
-
- - -
- -
合約號 部門經理營業員客戶名稱簽約款應收簽約金額簽約最大催收次數簽約最小催收次數二次款應收二次金額二次最大催收次數二次最小催收次數貨抵工地款應收貨抵工地金額貨抵工地最大催收次數貨抵工地最小催收次數安裝款應收安裝金額安裝最大催收次數安裝最小催收次數試車款應收試車金額試車最大催收次數試車最小催收次數官檢款應收官檢金額官檢最大催收次數官檢最小催收次數移交款應收移交金額移交最大催收次數移交最小催收次數尾款應收尾款金額尾款最大催收次數尾款最小催收次數合約總金額目前應收已開發票金額已收金額經理營業員客戶名稱目前應收作番狀態 操作
-
- - - - - - - - - $val) { - foreach($val as $k2 => $v2) { - if ($k2 == "main_menu") continue; - $td_str = ($k2 == 1) ? '' : ''; - $sta_str = ($v2["status"] == "Y") ? '' : ' class="table-off"'; -?> - > - - - - - - - -
主功能名稱子功能名稱控管
'.$val["main_menu"].' - - -
-
- - -

-
- -
- - "> -

-
- -
-
- -
- - - - -
- - + + + +
+ + Please fill up the required field!

"; + } else { + echo "

Record has added successfully

"; + } + } + */ + ?> + + + +
"> +
+ + +
+
+ + +
+ + + + + + + + + + + $val) { + foreach($val as $k2 => $v2) { + if ($k2 == "main_menu") continue; + $td_str = ($k2 == 1) ? '' : ''; + $sta_str = ($v2["status"] == "Y") ? '' : ' class="table-off"'; +?> + > + + + + + + + +
主功能名稱子功能名稱控管
'.$val["main_menu"].' + + +
+
+ + +

+
+ +
+ + "> +

+
+ +
+
+ +
+ + + +
+
+ + diff --git a/wms/account_auth-edit.php b/wms/account_auth-edit.php index 1e641805..a274bf1a 100644 --- a/wms/account_auth-edit.php +++ b/wms/account_auth-edit.php @@ -1,182 +1,182 @@ - 'X'"; - $result = mysqli_query($link, $sql); - while ($row_a = mysqli_fetch_row($result)) { - $person .= $row_a[1]."(".$row_a[0].")、"; - } - mysqli_free_result($result); -?> - - -
-
- - -
- - -
-
- - -
- - - - - - - - - - - - $val) { - foreach($val as $k2 => $v2) { - if ($k2 == "main_menu") continue; - $td_str = ($k2 == 1) ? '' : ''; - $sta_str = ($v2["status"] == "Y") ? '' : ' class="table-off"'; - $chk_r = $chk_w = ""; - if (!empty($permission_arr[$v2["mlink"]])) { - if ($permission_arr[$v2["mlink"]]&1) $chk_r = " checked"; - if ($permission_arr[$v2["mlink"]]&2) $chk_w = " checked"; - } -?> - > - - - - - - - - -
主功能名稱子功能名稱 - - - -
'.$val["main_menu"].' - - - - - -
- -
- - -
-
-
- - -
-
-
- -
- - - "> - "> - - "> -
-
- - - + 'X'"; + $result = mysqli_query($link, $sql); + while ($row_a = mysqli_fetch_row($result)) { + $person .= $row_a[1]."(".$row_a[0].")、"; + } + mysqli_free_result($result); +?> + + +
+
+ + +
+ + +
+
+ + +
+ + + + + + + + + + + + $val) { + foreach($val as $k2 => $v2) { + if ($k2 == "main_menu") continue; + $td_str = ($k2 == 1) ? '' : ''; + $sta_str = ($v2["status"] == "Y") ? '' : ' class="table-off"'; + $chk_r = $chk_w = ""; + if (!empty($permission_arr[$v2["mlink"]])) { + if ($permission_arr[$v2["mlink"]]&1) $chk_r = " checked"; + if ($permission_arr[$v2["mlink"]]&2) $chk_w = " checked"; + } +?> + > + + + + + + + + +
主功能名稱子功能名稱 + + + +
'.$val["main_menu"].' + + + + + +
+ +
+ + +
+
+
+ + +
+
+
+ +
+ + + "> + "> + + "> +
+
+ + + diff --git a/wms/account_auth-index.php b/wms/account_auth-index.php index 6a8d5e5f..d1dc283b 100644 --- a/wms/account_auth-index.php +++ b/wms/account_auth-index.php @@ -1,105 +1,105 @@ - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
項次部門代碼部門名稱職務代碼職務名稱建檔人建檔時間修改
-

- - - -

-
-
- -There is no record!"; -endif; - -#代表結束連線 -mysqli_close($link); -include "footer.php"; + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
項次部門代碼部門名稱職務代碼職務名稱建檔人建檔時間修改
+

+ + + +

+
+
+ +There is no record!"; +endif; + +#代表結束連線 +mysqli_close($link); +include "footer.php"; ?> \ No newline at end of file diff --git a/wms/account_auth-record-update.php b/wms/account_auth-record-update.php index 0cdab8bc..cf0ea3c3 100644 --- a/wms/account_auth-record-update.php +++ b/wms/account_auth-record-update.php @@ -1,65 +1,65 @@ - $v) { - $$k = htmlspecialchars(stripslashes(trim($v))); - } - //print_r($_POST);exit; - - // 選單各功能的權限 - $prog_arr = []; - $opt_r_arr = explode(",", $opt_r_all); - $opt_w_arr = explode(",", $opt_w_all); - foreach ($opt_r_arr as $key => $val) { - list($menu_id, $auth_r) = explode(";", $val); - list($menu_id, $auth_w) = explode(";", $opt_w_arr[$key]); - - // 找出相關程式 - $sql = "select link_content from menu where id = '$menu_id'"; - $res = mysqli_query($link, $sql); - if ($row = mysqli_fetch_assoc($res)) { - if ($row["link_content"]) { - $tmp_arr = explode("\r\n", $row["link_content"]); - foreach ($tmp_arr as $v) { - $prog_arr[$v] = $auth_r|$auth_w; - } - } - } - mysqli_free_result($res); - - if (($key%10)==0) usleep(200000); - } - - // 開始更新權限 - $permission = json_encode($prog_arr, JSON_UNESCAPED_SLASHES); - $sql = "update department set permission = '$permission', create_at = '$create_at' where id = '$id'"; - mysqli_query($link, $sql); - $affected = mysqli_affected_rows($link); - - // 更新user權限 - $sql = "select accountid from account where department_id = '$department_id' and role_id = '$role_id'"; - $res = mysqli_query($link, $sql); - while ($row = mysqli_fetch_row($res)) { - $db_query = "insert into account_auth (accountid, permission) values ('$row[0]', '$permission') "; - $db_query .= "ON DUPLICATE KEY UPDATE accountid = '$row[0]', permission = '$permission'"; - $res_u = mysqli_query($link, $db_query); - } - mysqli_free_result($res); - - mysqli_close($link); - if ($affected > 0) { - echo ""; - } elseif ($affected == 0) { - echo ""; - } else { - echo "{$db_query} 語法執行失敗,錯誤訊息SSS: " . mysqli_error($link); - } -} + $v) { + $$k = htmlspecialchars(stripslashes(trim($v))); + } + //print_r($_POST);exit; + + // 選單各功能的權限 + $prog_arr = []; + $opt_r_arr = explode(",", $opt_r_all); + $opt_w_arr = explode(",", $opt_w_all); + foreach ($opt_r_arr as $key => $val) { + list($menu_id, $auth_r) = explode(";", $val); + list($menu_id, $auth_w) = explode(";", $opt_w_arr[$key]); + + // 找出相關程式 + $sql = "select link_content from menu where id = '$menu_id'"; + $res = mysqli_query($link, $sql); + if ($row = mysqli_fetch_assoc($res)) { + if ($row["link_content"]) { + $tmp_arr = explode("\r\n", $row["link_content"]); + foreach ($tmp_arr as $v) { + $prog_arr[$v] = $auth_r|$auth_w; + } + } + } + mysqli_free_result($res); + + if (($key%10)==0) usleep(200000); + } + + // 開始更新權限 + $permission = json_encode($prog_arr, JSON_UNESCAPED_SLASHES); + $sql = "update department set permission = '$permission', create_at = '$create_at' where id = '$id'"; + mysqli_query($link, $sql); + $affected = mysqli_affected_rows($link); + + // 更新user權限 + $sql = "select accountid from account where department_id = '$department_id' and role_id = '$role_id'"; + $res = mysqli_query($link, $sql); + while ($row = mysqli_fetch_row($res)) { + $db_query = "insert into account_auth (accountid, permission) values ('$row[0]', '$permission') "; + $db_query .= "ON DUPLICATE KEY UPDATE accountid = '$row[0]', permission = '$permission'"; + $res_u = mysqli_query($link, $db_query); + } + mysqli_free_result($res); + + mysqli_close($link); + if ($affected > 0) { + echo ""; + } elseif ($affected == 0) { + echo ""; + } else { + echo "{$db_query} 語法執行失敗,錯誤訊息SSS: " . mysqli_error($link); + } +} ?> \ No newline at end of file diff --git a/wms/assets/img/icon/(Ñ╝¿╧Ñ╬)icon-star-active.png b/wms/assets/img/icon/(Ñ╝¿╧Ñ╬)icon-star-active.png new file mode 100644 index 00000000..b6da6739 Binary files /dev/null and b/wms/assets/img/icon/(Ñ╝¿╧Ñ╬)icon-star-active.png differ diff --git a/wms/assets/img/icon/(Ñ╝¿╧Ñ╬)icon-star-default.png b/wms/assets/img/icon/(Ñ╝¿╧Ñ╬)icon-star-default.png new file mode 100644 index 00000000..61dfa1ca Binary files /dev/null and b/wms/assets/img/icon/(Ñ╝¿╧Ñ╬)icon-star-default.png differ diff --git a/wms/bargain-create.php b/wms/bargain-create.php index b39c625e..4188986c 100644 --- a/wms/bargain-create.php +++ b/wms/bargain-create.php @@ -1,313 +1,313 @@ - "生產設備", "B" => "建築工程類", "C" => "工業工程規劃", "D" => "修繕維保服務", "E" => "儀器設備", "F" => "辦公設備", "G" => "辦公家具", "H" => "IT類產品", "I" => "諮詢服務", "J" => "維保電梯配件"]; - -$sql = "select max(bargainno) as maxno from bargain"; -$res = mysqli_query($link, $sql); -$row = mysqli_fetch_row($res); -$bargainno = $row[0] ? $row[0]+1 : date("Ym")."001"; - -$sql = "select department_id from account where accountid = '$user_id'"; -$res = mysqli_query($link, $sql); -$row = mysqli_fetch_row($res); -list($department_id) = $row; -mysqli_free_result($res); - -$department_arr = []; -$sql = "select department_id, name from department"; -$res = mysqli_query($link, $sql); -while ($row = mysqli_fetch_row($res)) { - $department_arr[$row[0]] = $row[1]; -} -mysqli_free_result($res); -?> - - -
-Please fill up the required field!

"; - } else { - echo "

Record has added successfully

"; - } -} -*/ -?> - -
" enctype="multipart/form-data"> -
- - -
-
- - - -
-
- - -
-
- - -
-
-
- -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- -
- -
-
-
- -
- -
-
-
- - -
-
- - -
-
- - -
-
-
- -
-
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

附件上傳及信息維護

序號作成單位提供◎維護信息配合單位提供◎維護信息
供應商名稱供應商報價單上傳報價備註議價後報價單上傳議價後報價備註
1
-
- - -
- - "> -

-
-
-
- -
- - - - - - - -
-
- + "生產設備", "B" => "建築工程類", "C" => "工業工程規劃", "D" => "修繕維保服務", "E" => "儀器設備", "F" => "辦公設備", "G" => "辦公家具", "H" => "IT類產品", "I" => "諮詢服務", "J" => "維保電梯配件"]; + +$sql = "select max(bargainno) as maxno from bargain"; +$res = mysqli_query($link, $sql); +$row = mysqli_fetch_row($res); +$bargainno = $row[0] ? $row[0]+1 : date("Ym")."001"; + +$sql = "select department_id from account where accountid = '$user_id'"; +$res = mysqli_query($link, $sql); +$row = mysqli_fetch_row($res); +list($department_id) = $row; +mysqli_free_result($res); + +$department_arr = []; +$sql = "select department_id, name from department"; +$res = mysqli_query($link, $sql); +while ($row = mysqli_fetch_row($res)) { + $department_arr[$row[0]] = $row[1]; +} +mysqli_free_result($res); +?> + + +
+Please fill up the required field!

"; + } else { + echo "

Record has added successfully

"; + } +} +*/ +?> + +
" enctype="multipart/form-data"> +
+ + +
+
+ + + +
+
+ + +
+
+ + +
+
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

附件上傳及信息維護

序號作成單位提供◎維護信息配合單位提供◎維護信息
供應商名稱供應商報價單上傳報價備註議價後報價單上傳議價後報價備註
1
+
+ + +
+ + "> +

+
+
+
+ +
+ + + + + + + +
+
+ \ No newline at end of file diff --git a/wms/bargain-delete.php b/wms/bargain-delete.php index 51d66fd2..786bff07 100644 --- a/wms/bargain-delete.php +++ b/wms/bargain-delete.php @@ -1,29 +1,29 @@ -"; - //echo "alert('審核中,已無法刪除');"; - echo "alert('資料無法刪除');"; - echo "location.href='pricereview-index.php'"; - echo ""; - exit; -} -*/ -$db_query = "delete from bargain_supplier where bid = '$id'"; -if ($rs = mysqli_query($link, $db_query)) { - $db_query = "delete from bargain where id = '$id'"; - mysqli_query($link, $db_query); -} - -header("Refresh:0; url=bargain-index.php?function_name=bargain&".$token_link); -ob_end_flush(); +"; + //echo "alert('審核中,已無法刪除');"; + echo "alert('資料無法刪除');"; + echo "location.href='pricereview-index.php'"; + echo ""; + exit; +} +*/ +$db_query = "delete from bargain_supplier where bid = '$id'"; +if ($rs = mysqli_query($link, $db_query)) { + $db_query = "delete from bargain where id = '$id'"; + mysqli_query($link, $db_query); +} + +header("Refresh:0; url=bargain-index.php?function_name=bargain&".$token_link); +ob_end_flush(); ?> \ No newline at end of file diff --git a/wms/bargain-edit.php b/wms/bargain-edit.php index 33f6e2da..9fd09dca 100644 --- a/wms/bargain-edit.php +++ b/wms/bargain-edit.php @@ -1,375 +1,375 @@ - "生產設備", "B" => "建築工程類", "C" => "工業工程規劃", "D" => "修繕維保服務", "E" => "儀器設備", "F" => "辦公設備", "G" => "辦公家具", "H" => "IT類產品", "I" => "諮詢服務", "J" => "維保電梯配件"]; - -$db_query = "select * from bargain where id = '$id'"; -$data = mysqli_query($link, $db_query); - -$department_arr = []; -$sql = "select department_id, name from department"; -$res = mysqli_query($link, $sql); -while ($row = mysqli_fetch_row($res)) { - $department_arr[$row[0]] = $row[1]; -} -mysqli_free_result($res); - -foreach($data as $data) : - $sql = "select name from account where accountid = '".$data['creater']."'"; - $res = mysqli_query($link, $sql); - $row = mysqli_fetch_row($res); - list($creater_name) = $row; - mysqli_free_result($res); - - $item_arr = []; - $sql = "select * from bargain_supplier where bid = '$id' order by supplier_id"; - $res = mysqli_query($link, $sql); - while ($row = mysqli_fetch_assoc($res)) { - $item_arr[$row['supplier_id']]['id'] = $row['id']; - $item_arr[$row['supplier_id']]['supplier'] = $row['supplier']; - $item_arr[$row['supplier_id']]['supplier_attatch_be'] = $row['supplier_attatch_be']; - $item_arr[$row['supplier_id']]['quote_amt_be'] = $row['quote_amt_be']; - $item_arr[$row['supplier_id']]['note_be'] = $row['note_be']; - $item_arr[$row['supplier_id']]['supplier_attatch_ar'] = $row['supplier_attatch_ar']; - $item_arr[$row['supplier_id']]['quote_amt_ar'] = $row['quote_amt_ar']; - $item_arr[$row['supplier_id']]['note_ar'] = $row['note_ar']; - } - mysqli_free_result($res); -?> - - -
-
-
- - -
-
- - - -
-
- - -
-
- - -
-
-
- -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - ".substr($data["attatch1"], strrpos($data["attatch1"],"/")+1).""; - ?> -
- -
-
-
- - ".substr($data["attatch2"], strrpos($data["attatch2"],"/")+1).""; - ?> -
- -
-
-
- - -
-
- - -
-
- - -
-
-
- -
-
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - $val) { - ?> - - - - - - - - - - - - - - - - - - - - - - - - -

附件上傳及信息維護

序號作成單位提供◎維護信息配合單位提供◎維護信息
供應商名稱供應商報價單上傳報價備註議價後報價單上傳議價後報價備註
- ".substr($val['supplier_attatch_be'], strrpos($val['supplier_attatch_be'],"/")+1).""; - else echo "--"; - ?> - - ".substr($val['supplier_attatch_ar'], strrpos($val['supplier_attatch_ar'],"/")+1).""; - else echo "--"; - ?> -
-
- - -
- - "> -

-
-
-
- -
- - - - - - - - - - - -
-
- "生產設備", "B" => "建築工程類", "C" => "工業工程規劃", "D" => "修繕維保服務", "E" => "儀器設備", "F" => "辦公設備", "G" => "辦公家具", "H" => "IT類產品", "I" => "諮詢服務", "J" => "維保電梯配件"]; + +$db_query = "select * from bargain where id = '$id'"; +$data = mysqli_query($link, $db_query); + +$department_arr = []; +$sql = "select department_id, name from department"; +$res = mysqli_query($link, $sql); +while ($row = mysqli_fetch_row($res)) { + $department_arr[$row[0]] = $row[1]; +} +mysqli_free_result($res); + +foreach($data as $data) : + $sql = "select name from account where accountid = '".$data['creater']."'"; + $res = mysqli_query($link, $sql); + $row = mysqli_fetch_row($res); + list($creater_name) = $row; + mysqli_free_result($res); + + $item_arr = []; + $sql = "select * from bargain_supplier where bid = '$id' order by supplier_id"; + $res = mysqli_query($link, $sql); + while ($row = mysqli_fetch_assoc($res)) { + $item_arr[$row['supplier_id']]['id'] = $row['id']; + $item_arr[$row['supplier_id']]['supplier'] = $row['supplier']; + $item_arr[$row['supplier_id']]['supplier_attatch_be'] = $row['supplier_attatch_be']; + $item_arr[$row['supplier_id']]['quote_amt_be'] = $row['quote_amt_be']; + $item_arr[$row['supplier_id']]['note_be'] = $row['note_be']; + $item_arr[$row['supplier_id']]['supplier_attatch_ar'] = $row['supplier_attatch_ar']; + $item_arr[$row['supplier_id']]['quote_amt_ar'] = $row['quote_amt_ar']; + $item_arr[$row['supplier_id']]['note_ar'] = $row['note_ar']; + } + mysqli_free_result($res); +?> + + +
+
+
+ + +
+
+ + + +
+
+ + +
+
+ + +
+
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + ".substr($data["attatch1"], strrpos($data["attatch1"],"/")+1).""; + ?> +
+ +
+
+
+ + ".substr($data["attatch2"], strrpos($data["attatch2"],"/")+1).""; + ?> +
+ +
+
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + $val) { + ?> + + + + + + + + + + + + + + + + + + + + + + + + +

附件上傳及信息維護

序號作成單位提供◎維護信息配合單位提供◎維護信息
供應商名稱供應商報價單上傳報價備註議價後報價單上傳議價後報價備註
+ ".substr($val['supplier_attatch_be'], strrpos($val['supplier_attatch_be'],"/")+1).""; + else echo "--"; + ?> + + ".substr($val['supplier_attatch_ar'], strrpos($val['supplier_attatch_ar'],"/")+1).""; + else echo "--"; + ?> +
+
+ + +
+ + "> +

+
+
+
+ +
+ + + + + + + + + + + +
+
+ \ No newline at end of file diff --git a/wms/bargain-index.php b/wms/bargain-index.php index 52d8daad..33afaf71 100644 --- a/wms/bargain-index.php +++ b/wms/bargain-index.php @@ -1,144 +1,144 @@ - "生產設備", "B" => "建築工程類", "C" => "工業工程規劃", "D" => "修繕維保服務", "E" => "儀器設備", "F" => "辦公設備", "G" => "辦公家具", "H" => "IT類產品", "I" => "諮詢服務", "J" => "維保電梯配件"]; - -$sql = "select department_id, name from department"; -$res = mysqli_query($link, $sql); -while ($row = mysqli_fetch_row($res)) { - $department_arr[$row[0]] = $row[1]; -} -mysqli_free_result($res); - -// sql語法存在變數中 -$sql = "select * from bargain order by id"; - -// 用mysqli_query方法執行(sql語法)將結果存在變數中 -$data = mysqli_query($link,$sql); -?> - - -

- - - -

- -Please fill up the required field!

"; - } else { - header("Location:bargain-index.php"); - } - } - -?> - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
項次申請單號作成單位作成者收文單位回答期限項目名稱類別品牌型號預估數量建檔人建檔時間修改刪除
-

- - - -

-
-

- - - -

-
-
- -There is no record!"; -endif; - -#代表結束連線 -mysqli_close($link); - -include "footer.php"; + "生產設備", "B" => "建築工程類", "C" => "工業工程規劃", "D" => "修繕維保服務", "E" => "儀器設備", "F" => "辦公設備", "G" => "辦公家具", "H" => "IT類產品", "I" => "諮詢服務", "J" => "維保電梯配件"]; + +$sql = "select department_id, name from department"; +$res = mysqli_query($link, $sql); +while ($row = mysqli_fetch_row($res)) { + $department_arr[$row[0]] = $row[1]; +} +mysqli_free_result($res); + +// sql語法存在變數中 +$sql = "select * from bargain order by id"; + +// 用mysqli_query方法執行(sql語法)將結果存在變數中 +$data = mysqli_query($link,$sql); +?> + + +

+ + + +

+ +Please fill up the required field!

"; + } else { + header("Location:bargain-index.php"); + } + } + +?> + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
項次申請單號作成單位作成者收文單位回答期限項目名稱類別品牌型號預估數量建檔人建檔時間修改刪除
+

+ + + +

+
+

+ + + +

+
+
+ +There is no record!"; +endif; + +#代表結束連線 +mysqli_close($link); + +include "footer.php"; ?> \ No newline at end of file diff --git a/wms/bargain-record-submit.php b/wms/bargain-record-submit.php index a4e2ddcf..b61ef444 100644 --- a/wms/bargain-record-submit.php +++ b/wms/bargain-record-submit.php @@ -1,149 +1,149 @@ - $v) { - $$k = htmlspecialchars(stripslashes(trim($v))); - } - - $sql = "select max(bargainno) as maxno from bargain"; - $res = mysqli_query($link, $sql); - $row = mysqli_fetch_row($res); - $bargainno_check = $row[0] ? $row[0]+1 : date("Ym")."001"; - if ($bargainno_check <> $bargainno) $bargainno = $bargainno_check; - - if ($_FILES["attatch1"]["error"] == 0) { - $file_name = $_FILES["attatch1"]["name"]; - $temp_file_name = $_FILES["attatch1"]["tmp_name"]; - $file_size = $_FILES["attatch1"]["size"]; - $target_dir = "bargain-uploads/"; - $target_file1 = strtolower($target_dir.$bargainno."-1-".basename($file_name)); - $img_file_type = pathinfo($file_name, PATHINFO_EXTENSION); - $upload_ok = 1; - //if (file_exists($target_file1)) unlink($target_file1); - foreach (glob($target_dir.$bargainno."-1-*") as $todelfile) { - unlink($todelfile); - } - $upload_res_1 = move_uploaded_file($temp_file_name, $target_file1); - } else $target_file1 = ""; - - if ($_FILES["attatch2"]["error"] == 0) { - $file_name = $_FILES["attatch2"]["name"]; - $temp_file_name = $_FILES["attatch2"]["tmp_name"]; - $file_size = $_FILES["attatch2"]["size"]; - $target_dir = "bargain-uploads/"; - $target_file2 = strtolower($target_dir.$bargainno."-2-".basename($file_name)); - $img_file_type = pathinfo($file_name, PATHINFO_EXTENSION); - $upload_ok = 1; - //if (file_exists($target_file2)) unlink($target_file2); - foreach (glob($target_dir.$bargainno."-2-*") as $todelfile) { - unlink($todelfile); - } - $upload_res_2 = move_uploaded_file($temp_file_name, $target_file2); - } else $target_file2 = ""; - - if (($target_file1 && !$upload_res_1) || ($target_file2 && !$upload_res_2)) { - echo ""; - } - - $db_query = "insert into bargain (bargainno, department_id, proposer, receiver, response_dt, item, annual, urgent, vendor, prospecting, category, "; - $db_query .= "dealer, reason, brand, model, quantity, brandkeep, lead_time, margin, margin_day, acceptance, purchase_history, "; - $db_query .= "attatch1, attatch2, item_description, repairno, category_repair, content, quotation, creater, create_at) values ("; - $db_query .= "'$bargainno', '$department_id', '$proposer', '$receiver', '$response_dt', '$item', '$annual', '$urgent', '$vendor', '$prospecting', '$category', "; - $db_query .= "'$dealer', '$reason', '$brand', '$model', '$quantity', '$brandkeep', '$lead_time', '$margin', '$margin_day', '$acceptance', '$purchase_history', "; - $db_query .= "'$target_file1', '$target_file2', '$item_description', '$repairno', '$category_repair', '$content', '$quotation', '$user_id', '$create_at')"; - $result = mysqli_query($link, $db_query); - $affected = mysqli_affected_rows($link); - if ($result && $sup_id_all != "") { - $bid = mysqli_insert_id($link); - $sup_id_arr = explode(",", $sup_id_all); - $supplier_arr = explode(",", $supplier_all); - $quote_amt_be_arr = explode(",", $quote_amt_be_all); - $note_be_arr = explode(",", $note_be_all); - $quote_amt_ar_arr = explode(",", $quote_amt_ar_all); - $note_ar_arr = explode(",", $note_ar_all); - $item_no = 1; - - for ($i=0; $i"; - echo "alert('檔案上傳失敗,資料請重建!".$sql."');"; - echo "location.href='bargain-index.php?function_name=bargain&".$token_link."';"; - echo ""; - } - - $quote_amt_be_arr[$i] = str_replace(",", "", $quote_amt_be_arr[$i]); - $quote_amt_ar_all[$i] = str_replace(",", "", $quote_amt_ar_all[$i]); - $db_query = "insert into bargain_supplier (bid, supplier_id, supplier, supplier_attatch_be, quote_amt_be, note_be, "; - $db_query .= "supplier_attatch_ar, quote_amt_ar, note_ar, creater, create_at) values ("; - $db_query .= "'$bid', '$item_no', '$supplier_arr[$i]', '$target_file_be', '$quote_amt_be_arr[$i]', '$note_be_arr[$i]', "; - $db_query .= "'$target_file_ar', '$quote_amt_ar_arr[$i]', '$note_ar_arr[$i]', '$user_id', '$create_at')"; - $result = mysqli_query($link, $db_query); - $item_no++; - } - } - - mysqli_close($link); - if ($affected > 0) { - echo ""; - } elseif ($affected == 0) { - echo ""; - } else { - echo "{$db_query} 語法執行失敗,錯誤訊息SSS: " . mysqli_error($link); - } -} + $v) { + $$k = htmlspecialchars(stripslashes(trim($v))); + } + + $sql = "select max(bargainno) as maxno from bargain"; + $res = mysqli_query($link, $sql); + $row = mysqli_fetch_row($res); + $bargainno_check = $row[0] ? $row[0]+1 : date("Ym")."001"; + if ($bargainno_check <> $bargainno) $bargainno = $bargainno_check; + + if ($_FILES["attatch1"]["error"] == 0) { + $file_name = $_FILES["attatch1"]["name"]; + $temp_file_name = $_FILES["attatch1"]["tmp_name"]; + $file_size = $_FILES["attatch1"]["size"]; + $target_dir = "bargain-uploads/"; + $target_file1 = strtolower($target_dir.$bargainno."-1-".basename($file_name)); + $img_file_type = pathinfo($file_name, PATHINFO_EXTENSION); + $upload_ok = 1; + //if (file_exists($target_file1)) unlink($target_file1); + foreach (glob($target_dir.$bargainno."-1-*") as $todelfile) { + unlink($todelfile); + } + $upload_res_1 = move_uploaded_file($temp_file_name, $target_file1); + } else $target_file1 = ""; + + if ($_FILES["attatch2"]["error"] == 0) { + $file_name = $_FILES["attatch2"]["name"]; + $temp_file_name = $_FILES["attatch2"]["tmp_name"]; + $file_size = $_FILES["attatch2"]["size"]; + $target_dir = "bargain-uploads/"; + $target_file2 = strtolower($target_dir.$bargainno."-2-".basename($file_name)); + $img_file_type = pathinfo($file_name, PATHINFO_EXTENSION); + $upload_ok = 1; + //if (file_exists($target_file2)) unlink($target_file2); + foreach (glob($target_dir.$bargainno."-2-*") as $todelfile) { + unlink($todelfile); + } + $upload_res_2 = move_uploaded_file($temp_file_name, $target_file2); + } else $target_file2 = ""; + + if (($target_file1 && !$upload_res_1) || ($target_file2 && !$upload_res_2)) { + echo ""; + } + + $db_query = "insert into bargain (bargainno, department_id, proposer, receiver, response_dt, item, annual, urgent, vendor, prospecting, category, "; + $db_query .= "dealer, reason, brand, model, quantity, brandkeep, lead_time, margin, margin_day, acceptance, purchase_history, "; + $db_query .= "attatch1, attatch2, item_description, repairno, category_repair, content, quotation, creater, create_at) values ("; + $db_query .= "'$bargainno', '$department_id', '$proposer', '$receiver', '$response_dt', '$item', '$annual', '$urgent', '$vendor', '$prospecting', '$category', "; + $db_query .= "'$dealer', '$reason', '$brand', '$model', '$quantity', '$brandkeep', '$lead_time', '$margin', '$margin_day', '$acceptance', '$purchase_history', "; + $db_query .= "'$target_file1', '$target_file2', '$item_description', '$repairno', '$category_repair', '$content', '$quotation', '$user_id', '$create_at')"; + $result = mysqli_query($link, $db_query); + $affected = mysqli_affected_rows($link); + if ($result && $sup_id_all != "") { + $bid = mysqli_insert_id($link); + $sup_id_arr = explode(",", $sup_id_all); + $supplier_arr = explode(",", $supplier_all); + $quote_amt_be_arr = explode(",", $quote_amt_be_all); + $note_be_arr = explode(",", $note_be_all); + $quote_amt_ar_arr = explode(",", $quote_amt_ar_all); + $note_ar_arr = explode(",", $note_ar_all); + $item_no = 1; + + for ($i=0; $i"; + echo "alert('檔案上傳失敗,資料請重建!".$sql."');"; + echo "location.href='bargain-index.php?function_name=bargain&".$token_link."';"; + echo ""; + } + + $quote_amt_be_arr[$i] = str_replace(",", "", $quote_amt_be_arr[$i]); + $quote_amt_ar_all[$i] = str_replace(",", "", $quote_amt_ar_all[$i]); + $db_query = "insert into bargain_supplier (bid, supplier_id, supplier, supplier_attatch_be, quote_amt_be, note_be, "; + $db_query .= "supplier_attatch_ar, quote_amt_ar, note_ar, creater, create_at) values ("; + $db_query .= "'$bid', '$item_no', '$supplier_arr[$i]', '$target_file_be', '$quote_amt_be_arr[$i]', '$note_be_arr[$i]', "; + $db_query .= "'$target_file_ar', '$quote_amt_ar_arr[$i]', '$note_ar_arr[$i]', '$user_id', '$create_at')"; + $result = mysqli_query($link, $db_query); + $item_no++; + } + } + + mysqli_close($link); + if ($affected > 0) { + echo ""; + } elseif ($affected == 0) { + echo ""; + } else { + echo "{$db_query} 語法執行失敗,錯誤訊息SSS: " . mysqli_error($link); + } +} ?> \ No newline at end of file diff --git a/wms/bargain-record-update.php b/wms/bargain-record-update.php index d3b27af3..097c5499 100644 --- a/wms/bargain-record-update.php +++ b/wms/bargain-record-update.php @@ -1,144 +1,144 @@ - $v) { - $$k = htmlspecialchars(stripslashes(trim($v))); - } - //print_r($_POST); - //print_r($_FILES);exit; - - $sql_atta = ""; - - $quantity = str_replace(",", "", $quantity); - $lead_time = str_replace(",", "", $lead_time); - $margin_day = str_replace(",", "", $margin_day); - - if ($_FILES["attatch1"]["error"] == 0) { - $file_name = $_FILES["attatch1"]["name"]; - $temp_file_name = $_FILES["attatch1"]["tmp_name"]; - $file_size = $_FILES["attatch1"]["size"]; - $target_dir = "bargain-uploads/"; - $target_file1 = strtolower($target_dir.$bargainno."-1-".basename($file_name)); - $img_file_type = pathinfo($file_name, PATHINFO_EXTENSION); - $upload_ok = 1; - //if (file_exists($target_file1)) unlink($target_file1); - foreach (glob($target_dir.$bargainno."-1-*") as $todelfile) { - unlink($todelfile); - } - $upload_res_1 = move_uploaded_file($temp_file_name, $target_file1); - $sql_atta .= "attatch1 = '$target_file1', "; - } else $target_file1 = ""; - - if ($_FILES["attatch2"]["error"] == 0) { - $file_name = $_FILES["attatch2"]["name"]; - $temp_file_name = $_FILES["attatch2"]["tmp_name"]; - $file_size = $_FILES["attatch2"]["size"]; - $target_dir = "bargain-uploads/"; - $target_file2 = strtolower($target_dir.$bargainno."-2-".basename($file_name)); - $img_file_type = pathinfo($file_name, PATHINFO_EXTENSION); - $upload_ok = 1; - //if (file_exists($target_file2)) unlink($target_file2); - foreach (glob($target_dir.$bargainno."-2-*") as $todelfile) { - unlink($todelfile); - } - $upload_res_2 = move_uploaded_file($temp_file_name, $target_file2); - $sql_atta .= "attatch2 = '$target_file2', "; - } else $target_file2 = ""; - - if (($target_file1 && !$upload_res_1) || ($target_file2 && !$upload_res_2)) { - echo ""; - } - - $db_query = "update bargain set receiver = '$receiver', response_dt = '$response_dt', item = '$item', annual = '$annual', urgent = '$urgent', "; - $db_query .= "vendor = '$vendor', prospecting = '$prospecting', category = '$category', dealer = '$dealer', reason = '$reason', brand = '$brand', "; - $db_query .= "model = '$model', quantity = '$quantity', brandkeep = '$brandkeep', lead_time = '$lead_time', margin = '$margin', margin_day = '$margin_day', "; - $db_query .= "acceptance = '$acceptance', purchase_history = '$purchase_history', item_description = '$item_description', repairno = '$repairno', "; - $db_query .= $sql_atta; - $db_query .= "category_repair = '$category_repair', content = '$content', quotation = '$quotation', create_dt = '$create_at' "; - $db_query .= "where id = '$id'"; - $result = mysqli_query($link, $db_query); - $affected = mysqli_affected_rows($link); - if ($result && $sup_id_all != "") { - $bsid_arr = explode(",", $bsid_all); - $sup_id_arr = explode(",", $sup_id_all); - $supplier_arr = explode(",", rtrim($supplier_all, ",")); - $quote_amt_be_arr = explode(",", $quote_amt_be_all); - $note_be_arr = explode(",", $note_be_all); - $quote_amt_ar_arr = explode(",", $quote_amt_ar_all); - $note_ar_arr = explode(",", $note_ar_all); - $item_no = 1; - - // 有新增的供應商 - $new_sup_cnt = count($supplier_arr) - count($bsid_arr); - if ($new_sup_cnt > 0) $next_sup_id = max($sup_id_arr)+1; - $idx = 0; - for ($i=0; $i 0 && $bsid_arr[$i] == "") { // 新增 - $target_file_be = $target_file_ar = ""; - if ($_FILES["supplier_attatch_be"]["name"]) { // 有上傳檔案 - if ($_FILES["supplier_attatch_be"]["name"][$idx] && ($_FILES["supplier_attatch_be"]["error"][$idx] == 0)) { - $file_name = $_FILES["supplier_attatch_be"]["name"][$idx]; - $temp_file_name = $_FILES["supplier_attatch_be"]["tmp_name"][$idx]; - $file_size = $_FILES["supplier_attatch_be"]["size"][$idx]; - $target_dir = "bargain-uploads/supplier/"; - $target_file_be = strtolower($target_dir.$bargainno."-".$next_sup_id."-".basename($file_name)); - $upload_ok = 1; - $img_file_type = pathinfo($target_file_be, PATHINFO_EXTENSION); - $upload_res_be = move_uploaded_file($temp_file_name, $target_file_be); - } - } - if ($_FILES["supplier_attatch_ar"]["name"]) { // 有上傳檔案 - if ($_FILES["supplier_attatch_ar"]["name"][$idx] && ($_FILES["supplier_attatch_ar"]["error"][$idx] == 0)) { - $file_name = $_FILES["supplier_attatch_ar"]["name"][$idx]; - $temp_file_name = $_FILES["supplier_attatch_ar"]["tmp_name"][$idx]; - $file_size = $_FILES["supplier_attatch_ar"]["size"][$idx]; - $target_dir = "bargain-uploads/supplier/"; - $target_file_ar = strtolower($target_dir.$bargainno."-".$next_sup_id."-".basename($file_name)); - $upload_ok = 1; - $img_file_type = pathinfo($target_file_ar, PATHINFO_EXTENSION); - $upload_res_ar = move_uploaded_file($temp_file_name, $target_file_ar); - } - } - if ($upload_res_be || $upload_res_ar) $idx++; - if (($target_file_be && !$upload_res_be) || ($target_file_ar && !$upload_res_ar)) { - echo ""; - } - $db_query = "insert into bargain_supplier (bid, supplier_id, supplier, supplier_attatch_be, quote_amt_be, note_be, "; - $db_query .= "supplier_attatch_ar, quote_amt_ar, note_ar, creater, create_at) values ("; - $db_query .= "'$id', '$next_sup_id', '$supplier_arr[$i]', '$target_file_be', '$quote_amt_be_arr[$i]', '$note_be_arr[$i]', "; - $db_query .= "'$target_file_ar', '$quote_amt_ar_arr[$i]', '$note_ar_arr[$i]', '$user_id', '$create_at')"; - $result = mysqli_query($link, $db_query); - $next_sup_id++; - } else { // 修改(不支援重傳檔案) - $db_query = "update bargain_supplier set supplier = '$supplier_arr[$i]', quote_amt_be = '$quote_amt_be_arr[$i]', "; - $db_query .= "note_be = '$note_be_arr[$i]', quote_amt_ar = '$quote_amt_ar_arr[$i]', "; - $db_query .= "note_ar = '$note_ar_arr[$i]', create_at = '$create_at' "; - $db_query .= "where id = '$bsid_arr[$i]'"; - $result = mysqli_query($link, $db_query); - } - } - } - - mysqli_close($link); - if ($affected > 0) { - echo ""; - } elseif ($affected == 0) { - echo ""; - } else { - echo "{$db_query} 語法執行失敗,錯誤訊息SSS: " . mysqli_error($link); - } -} + $v) { + $$k = htmlspecialchars(stripslashes(trim($v))); + } + //print_r($_POST); + //print_r($_FILES);exit; + + $sql_atta = ""; + + $quantity = str_replace(",", "", $quantity); + $lead_time = str_replace(",", "", $lead_time); + $margin_day = str_replace(",", "", $margin_day); + + if ($_FILES["attatch1"]["error"] == 0) { + $file_name = $_FILES["attatch1"]["name"]; + $temp_file_name = $_FILES["attatch1"]["tmp_name"]; + $file_size = $_FILES["attatch1"]["size"]; + $target_dir = "bargain-uploads/"; + $target_file1 = strtolower($target_dir.$bargainno."-1-".basename($file_name)); + $img_file_type = pathinfo($file_name, PATHINFO_EXTENSION); + $upload_ok = 1; + //if (file_exists($target_file1)) unlink($target_file1); + foreach (glob($target_dir.$bargainno."-1-*") as $todelfile) { + unlink($todelfile); + } + $upload_res_1 = move_uploaded_file($temp_file_name, $target_file1); + $sql_atta .= "attatch1 = '$target_file1', "; + } else $target_file1 = ""; + + if ($_FILES["attatch2"]["error"] == 0) { + $file_name = $_FILES["attatch2"]["name"]; + $temp_file_name = $_FILES["attatch2"]["tmp_name"]; + $file_size = $_FILES["attatch2"]["size"]; + $target_dir = "bargain-uploads/"; + $target_file2 = strtolower($target_dir.$bargainno."-2-".basename($file_name)); + $img_file_type = pathinfo($file_name, PATHINFO_EXTENSION); + $upload_ok = 1; + //if (file_exists($target_file2)) unlink($target_file2); + foreach (glob($target_dir.$bargainno."-2-*") as $todelfile) { + unlink($todelfile); + } + $upload_res_2 = move_uploaded_file($temp_file_name, $target_file2); + $sql_atta .= "attatch2 = '$target_file2', "; + } else $target_file2 = ""; + + if (($target_file1 && !$upload_res_1) || ($target_file2 && !$upload_res_2)) { + echo ""; + } + + $db_query = "update bargain set receiver = '$receiver', response_dt = '$response_dt', item = '$item', annual = '$annual', urgent = '$urgent', "; + $db_query .= "vendor = '$vendor', prospecting = '$prospecting', category = '$category', dealer = '$dealer', reason = '$reason', brand = '$brand', "; + $db_query .= "model = '$model', quantity = '$quantity', brandkeep = '$brandkeep', lead_time = '$lead_time', margin = '$margin', margin_day = '$margin_day', "; + $db_query .= "acceptance = '$acceptance', purchase_history = '$purchase_history', item_description = '$item_description', repairno = '$repairno', "; + $db_query .= $sql_atta; + $db_query .= "category_repair = '$category_repair', content = '$content', quotation = '$quotation', create_dt = '$create_at' "; + $db_query .= "where id = '$id'"; + $result = mysqli_query($link, $db_query); + $affected = mysqli_affected_rows($link); + if ($result && $sup_id_all != "") { + $bsid_arr = explode(",", $bsid_all); + $sup_id_arr = explode(",", $sup_id_all); + $supplier_arr = explode(",", rtrim($supplier_all, ",")); + $quote_amt_be_arr = explode(",", $quote_amt_be_all); + $note_be_arr = explode(",", $note_be_all); + $quote_amt_ar_arr = explode(",", $quote_amt_ar_all); + $note_ar_arr = explode(",", $note_ar_all); + $item_no = 1; + + // 有新增的供應商 + $new_sup_cnt = count($supplier_arr) - count($bsid_arr); + if ($new_sup_cnt > 0) $next_sup_id = max($sup_id_arr)+1; + $idx = 0; + for ($i=0; $i 0 && $bsid_arr[$i] == "") { // 新增 + $target_file_be = $target_file_ar = ""; + if ($_FILES["supplier_attatch_be"]["name"]) { // 有上傳檔案 + if ($_FILES["supplier_attatch_be"]["name"][$idx] && ($_FILES["supplier_attatch_be"]["error"][$idx] == 0)) { + $file_name = $_FILES["supplier_attatch_be"]["name"][$idx]; + $temp_file_name = $_FILES["supplier_attatch_be"]["tmp_name"][$idx]; + $file_size = $_FILES["supplier_attatch_be"]["size"][$idx]; + $target_dir = "bargain-uploads/supplier/"; + $target_file_be = strtolower($target_dir.$bargainno."-".$next_sup_id."-".basename($file_name)); + $upload_ok = 1; + $img_file_type = pathinfo($target_file_be, PATHINFO_EXTENSION); + $upload_res_be = move_uploaded_file($temp_file_name, $target_file_be); + } + } + if ($_FILES["supplier_attatch_ar"]["name"]) { // 有上傳檔案 + if ($_FILES["supplier_attatch_ar"]["name"][$idx] && ($_FILES["supplier_attatch_ar"]["error"][$idx] == 0)) { + $file_name = $_FILES["supplier_attatch_ar"]["name"][$idx]; + $temp_file_name = $_FILES["supplier_attatch_ar"]["tmp_name"][$idx]; + $file_size = $_FILES["supplier_attatch_ar"]["size"][$idx]; + $target_dir = "bargain-uploads/supplier/"; + $target_file_ar = strtolower($target_dir.$bargainno."-".$next_sup_id."-".basename($file_name)); + $upload_ok = 1; + $img_file_type = pathinfo($target_file_ar, PATHINFO_EXTENSION); + $upload_res_ar = move_uploaded_file($temp_file_name, $target_file_ar); + } + } + if ($upload_res_be || $upload_res_ar) $idx++; + if (($target_file_be && !$upload_res_be) || ($target_file_ar && !$upload_res_ar)) { + echo ""; + } + $db_query = "insert into bargain_supplier (bid, supplier_id, supplier, supplier_attatch_be, quote_amt_be, note_be, "; + $db_query .= "supplier_attatch_ar, quote_amt_ar, note_ar, creater, create_at) values ("; + $db_query .= "'$id', '$next_sup_id', '$supplier_arr[$i]', '$target_file_be', '$quote_amt_be_arr[$i]', '$note_be_arr[$i]', "; + $db_query .= "'$target_file_ar', '$quote_amt_ar_arr[$i]', '$note_ar_arr[$i]', '$user_id', '$create_at')"; + $result = mysqli_query($link, $db_query); + $next_sup_id++; + } else { // 修改(不支援重傳檔案) + $db_query = "update bargain_supplier set supplier = '$supplier_arr[$i]', quote_amt_be = '$quote_amt_be_arr[$i]', "; + $db_query .= "note_be = '$note_be_arr[$i]', quote_amt_ar = '$quote_amt_ar_arr[$i]', "; + $db_query .= "note_ar = '$note_ar_arr[$i]', create_at = '$create_at' "; + $db_query .= "where id = '$bsid_arr[$i]'"; + $result = mysqli_query($link, $db_query); + } + } + } + + mysqli_close($link); + if ($affected > 0) { + echo ""; + } elseif ($affected == 0) { + echo ""; + } else { + echo "{$db_query} 語法執行失敗,錯誤訊息SSS: " . mysqli_error($link); + } +} ?> \ No newline at end of file diff --git a/wms/board-delete.php b/wms/board-delete.php index 1c9d73d9..808cf094 100644 --- a/wms/board-delete.php +++ b/wms/board-delete.php @@ -1,23 +1,23 @@ - \ No newline at end of file diff --git a/wms/board-edit.php b/wms/board-edit.php index e9f2f168..2e8c49b5 100644 --- a/wms/board-edit.php +++ b/wms/board-edit.php @@ -1,60 +1,60 @@ - - -
-
-
- - -
- -
- - -
-
- - -
- -
-
-
-
- -
-
-
- -
- -
-
- + +
+
+
+ + +
+ +
+ + +
+
+ + +
+ +
+
+
+
+ +
+
+
+ +
+ +
+
+ \ No newline at end of file diff --git a/wms/board-file.php b/wms/board-file.php index 58d57ce8..4628950a 100644 --- a/wms/board-file.php +++ b/wms/board-file.php @@ -1,19 +1,19 @@ -"; - echo "alert('檔案下載失敗!');"; - echo ""; - header("Refresh:0; url=board-index.php?function_name=board&".$token_link); -} -ob_end_flush(); +"; + echo "alert('檔案下載失敗!');"; + echo ""; + header("Refresh:0; url=board-index.php?function_name=board&".$token_link); +} +ob_end_flush(); ?> \ No newline at end of file diff --git a/wms/board-index.php b/wms/board-index.php index ac67b1a9..80932de7 100644 --- a/wms/board-index.php +++ b/wms/board-index.php @@ -1,201 +1,201 @@ - - - - -

- - - -

- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
項次主旨附件建檔人建檔時間關閉公告
- -

- - - - - -

-
-
- - - - - - - -There is no record!"; -endif; - -#代表結束連線 -mysqli_close($link); - -include "footer.php"; + + + + +

+ + + +

+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
項次主旨附件建檔人建檔時間關閉公告
+ +

+ + + + + +

+
+
+ + + + + + + +There is no record!"; +endif; + +#代表結束連線 +mysqli_close($link); + +include "footer.php"; ?> \ No newline at end of file diff --git a/wms/board-record-submit.php b/wms/board-record-submit.php index bfae3908..3a137e14 100644 --- a/wms/board-record-submit.php +++ b/wms/board-record-submit.php @@ -7,7 +7,8 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") { $$k = trim($v); } - function get_basename($filename) { + function get_basename($filename) + { return preg_replace('/^.+[\\\\\\/]/', '', $filename); } @@ -16,7 +17,7 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") { $temp_file_name = $_FILES["attatch1"]["tmp_name"]; $file_size = $_FILES["attatch1"]["size"]; $target_dir = "board-attach/"; - $target_file1 = strtolower($target_dir.get_basename($file_name)); + $target_file1 = strtolower($target_dir . get_basename($file_name)); $img_file_type = pathinfo($file_name, PATHINFO_EXTENSION); $upload_ok = 1; if (file_exists($target_file1)) unlink($target_file1); @@ -27,22 +28,22 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") { if ($target_file1 && !$upload_res_1) { echo ""; } $db_query = "insert into board (title, content, attach, pin, creater, create_at) values ("; - $db_query .= "'$title', '$content', '$target_file1', '1', '".$user_id."', NOW())"; + $db_query .= "'$title', '$content', '$target_file1', '1', '" . $user_id . "', NOW())"; $result = mysqli_query($link, $db_query); if (mysqli_affected_rows($link) > 0) { echo ""; - } elseif (mysqli_affected_rows($link)==0) { + } elseif (mysqli_affected_rows($link) == 0) { echo ""; } else { echo "{$db_query} 語法執行失敗,錯誤訊息SSS: " . mysqli_error($link); @@ -50,4 +51,3 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") { mysqli_close($link); } -?> \ No newline at end of file diff --git a/wms/board-record-update.php b/wms/board-record-update.php index e11ff195..89341386 100644 --- a/wms/board-record-update.php +++ b/wms/board-record-update.php @@ -1,52 +1,52 @@ - $v) { - $$k = htmlspecialchars(stripslashes(trim($v))); - } - //print_r($_POST); - //print_r($_FILES);exit; - - function get_basename($filename) { - return preg_replace('/^.+[\\\\\\/]/', '', $filename); - } - - $pin = ($pin == "Y") ? "99" : "1"; - $sql_atta = ""; - - if ($_FILES["attatch1"]["error"] == 0) { - $file_name = $_FILES["attatch1"]["name"]; - $temp_file_name = $_FILES["attatch1"]["tmp_name"]; - $file_size = $_FILES["attatch1"]["size"]; - $target_dir = "board-attach/"; - $target_file1 = strtolower($target_dir.get_basename($file_name)); - $img_file_type = pathinfo($file_name, PATHINFO_EXTENSION); - $upload_ok = 1; - if (file_exists($target_file1)) unlink($target_file1); - $upload_res_1 = move_uploaded_file($temp_file_name, $target_file1); - $sql_atta .= "path = '$target_file1', "; - } else $target_file1 = ""; - - if ($target_file1 && !$upload_res_1) { - echo ""; - } - - $db_query = "update board set title = '$title', pin = '$pin', "; - $db_query .= $sql_atta; - $db_query .= "content = '$content'"; - $db_query .= "where id = '$id'"; - $result = mysqli_query($link, $db_query); - - mysqli_close($link); - - echo ""; -} + $v) { + $$k = htmlspecialchars(stripslashes(trim($v))); + } + //print_r($_POST); + //print_r($_FILES);exit; + + function get_basename($filename) { + return preg_replace('/^.+[\\\\\\/]/', '', $filename); + } + + $pin = ($pin == "Y") ? "99" : "1"; + $sql_atta = ""; + + if ($_FILES["attatch1"]["error"] == 0) { + $file_name = $_FILES["attatch1"]["name"]; + $temp_file_name = $_FILES["attatch1"]["tmp_name"]; + $file_size = $_FILES["attatch1"]["size"]; + $target_dir = "board-attach/"; + $target_file1 = strtolower($target_dir.get_basename($file_name)); + $img_file_type = pathinfo($file_name, PATHINFO_EXTENSION); + $upload_ok = 1; + if (file_exists($target_file1)) unlink($target_file1); + $upload_res_1 = move_uploaded_file($temp_file_name, $target_file1); + $sql_atta .= "path = '$target_file1', "; + } else $target_file1 = ""; + + if ($target_file1 && !$upload_res_1) { + echo ""; + } + + $db_query = "update board set title = '$title', pin = '$pin', "; + $db_query .= $sql_atta; + $db_query .= "content = '$content'"; + $db_query .= "where id = '$id'"; + $result = mysqli_query($link, $db_query); + + mysqli_close($link); + + echo ""; +} ?> \ No newline at end of file diff --git a/wms/change-password-update.php b/wms/change-password-update.php index ffdaa8ed..489350b0 100644 --- a/wms/change-password-update.php +++ b/wms/change-password-update.php @@ -1,48 +1,48 @@ - 0) { - $sql_query = "UPDATE account set pwd = '$new_pwd' where ((accountid = '$user_id') and (pwd = '$old_pwd'))"; - mysqli_query($link, $sql_query); - $result_message = " - - "; - } else { - $result_message = " - - "; - } - echo $result_message; -} - -mysqli_close($link); -?> - + "; + } else { + $result_message = " + + "; + } + echo $result_message; +} + +mysqli_close($link); +?> + \ No newline at end of file diff --git a/wms/change-password.php b/wms/change-password.php index 363eb337..8a221d76 100644 --- a/wms/change-password.php +++ b/wms/change-password.php @@ -1,77 +1,77 @@ - - - - - - -
-
-
-
-
-
- - - -
-
變更密碼
-
-
-
-
請輸入變更前後密碼!
-
-
" method="post" enctype="multipart/form-data"> - - - -
-
- - - - -
-
-
-
- - - - -
-
-
- -
-
-
-
-
- -
- + + + + + +
+
+
+
+
+
+ + + +
+
變更密碼
+
+
+
+
請輸入變更前後密碼!
+
+
" method="post" enctype="multipart/form-data"> + + + +
+
+ + + + +
+
+
+
+ + + + +
+
+
+ +
+
+
+
+
+ +
+ \ No newline at end of file diff --git a/wms/class/Cmail.php b/wms/class/Cmail.php index f2edd6a6..51ed924b 100644 --- a/wms/class/Cmail.php +++ b/wms/class/Cmail.php @@ -1,5 +1,4 @@ charset = "UTF-8"; $this->host = "mail.masada.com.tw"; @@ -24,8 +23,8 @@ class Cmail $this->smtp_user = "notice"; // 這裡填寫SMTP登入帳號, 例如 your.gmail.name@gmail.com 則填寫your.gmail.name $this->smtp_pwd = "90493119"; // 這裡填寫SMTP登入密碼 } - - function sendx($subject = "", $em_body = "", $sendlist = array(), $from = "永佳捷科技", $bcc = "", $files = array()) + + function sendx($subject="", $em_body="", $sendlist=array(), $from="永佳捷科技", $bcc="", $files=array()) { if (!$sendlist) return; $em_body = nl2br($em_body); @@ -53,15 +52,11 @@ class Cmail //$mail->addCC("personC@gmail.com", "person C"); //$mail->addBCC("personD@gmail.com", "person D"); //$mail->addAttachment("image1.jpg", "picture.jpg"); //設定附件, 對方會看到附件名稱為 picture.jpg - foreach ($files as $v) { - list($file, $file_name) = $v; - $mail->addAttachment($file, $file_name); - } //print_r($mail);exit; - if (!$mail->Send()) { + if (!$mail->Send()){ // echo "Mailer error: " . $mail->ErrorInfo; } else { //echo "Email sent"; } } -} +} \ No newline at end of file diff --git a/wms/combo-create.php b/wms/combo-create.php index 97b39d4d..f99a86df 100644 --- a/wms/combo-create.php +++ b/wms/combo-create.php @@ -1,86 +1,86 @@ - - -
- - Please fill up the required field!

"; - } else { - echo "

Record has added successfully

"; - } - } - */ - ?> - - - -
" enctype="multipart/form-data"> - - -
- - - -
- -
- - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - - -
- -
- - -

-
- -
- - -

-
- -
-
- -
- -
-
- - + + +
+ + Please fill up the required field!

"; + } else { + echo "

Record has added successfully

"; + } + } + */ + ?> + + + +
" enctype="multipart/form-data"> + + +
+ + + +
+ +
+ + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + + +
+ +
+ + +

+
+ +
+ + +

+
+ +
+
+ +
+ +
+
+ + diff --git a/wms/combo-delete.php b/wms/combo-delete.php index 2a8e8814..396488b7 100644 --- a/wms/combo-delete.php +++ b/wms/combo-delete.php @@ -1,12 +1,12 @@ - \ No newline at end of file diff --git a/wms/combo-edit.php b/wms/combo-edit.php index c28c0368..7c529ace 100644 --- a/wms/combo-edit.php +++ b/wms/combo-edit.php @@ -1,93 +1,93 @@ -getMessage(), "\n"; - } -*/ - foreach($data as $data) : -?> - -
-
- - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - - -
- -
- - -
- -
-
- -
- -
-
- - - +getMessage(), "\n"; + } +*/ + foreach($data as $data) : +?> + +
+
+ + +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + + +
+ +
+ + +
+ +
+
+ +
+ +
+
+ + + diff --git a/wms/combo-index.php b/wms/combo-index.php index 64b75531..4831f536 100644 --- a/wms/combo-index.php +++ b/wms/combo-index.php @@ -1,140 +1,140 @@ - - - - -

- - - -

- -Please fill up the required field!

"; - } else { - header("Location:combo-index.php"); - } - } - -?> - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
項次保養套餐號部位部位類別部位類別序號保養內容是否啟用建檔人建檔時間修改刪除
-

- - - -

-
-

- - - -

-
-
- -There is no record!"; -endif; - -#代表結束連線 -mysqli_close($link); - -include "footer.php"; - + + + + +

+ + + +

+ +Please fill up the required field!

"; + } else { + header("Location:combo-index.php"); + } + } + +?> + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
項次保養套餐號部位部位類別部位類別序號保養內容是否啟用建檔人建檔時間修改刪除
+

+ + + +

+
+

+ + + +

+
+
+ +There is no record!"; +endif; + +#代表結束連線 +mysqli_close($link); + +include "footer.php"; + ?> \ No newline at end of file diff --git a/wms/combo-record-submit.php b/wms/combo-record-submit.php index f7994b9e..aca5529d 100644 --- a/wms/combo-record-submit.php +++ b/wms/combo-record-submit.php @@ -1,42 +1,42 @@ - 0) { - echo ""; - } elseif ($affected == 0) { - echo ""; - } else { - echo "{$db_query} 語法執行失敗,錯誤訊息SSS: " . mysqli_error($link); - } -} -?> + 0) { + echo ""; + } elseif ($affected == 0) { + echo ""; + } else { + echo "{$db_query} 語法執行失敗,錯誤訊息SSS: " . mysqli_error($link); + } +} +?> diff --git a/wms/combo-record-update.php b/wms/combo-record-update.php index a59b305b..9aef6af5 100644 --- a/wms/combo-record-update.php +++ b/wms/combo-record-update.php @@ -1,41 +1,41 @@ - 0) { - echo ""; - } elseif ($affected == 0) { - echo ""; - } else { - echo "{$db_query} 語法執行失敗,錯誤訊息SSS: " . mysqli_error($link); - } -} + 0) { + echo ""; + } elseif ($affected == 0) { + echo ""; + } else { + echo "{$db_query} 語法執行失敗,錯誤訊息SSS: " . mysqli_error($link); + } +} ?> \ No newline at end of file diff --git a/wms/combo-user-input.php b/wms/combo-user-input.php index af1ef76d..6c5e5e9b 100644 --- a/wms/combo-user-input.php +++ b/wms/combo-user-input.php @@ -1,54 +1,54 @@ - - + + diff --git a/wms/cont/apply_form.php b/wms/cont/apply_form.php index 34fb54a8..da57a1fa 100644 --- a/wms/cont/apply_form.php +++ b/wms/cont/apply_form.php @@ -1,796 +1,818 @@ -0) { - echo""; - exit; -} -*/ - -#係統ID -$system_id = 'con'; -#流程ID -$flow_id = 'con01'; -#表單號 $form_id; -$form_id = ""; -#價審單狀態 -$apply_st = ""; -list($apply_key, $form_key)=DB::fields("select apply_key, form_key from con_maintance_examine_apply where vol_no='$vol_no' order by apply_key desc limit 0, 1"); -if (empty($apply_key)) $apply_st = 1; // 準備新增 -else { - //list($flow_code)=DB::fields("select flow_code from flow where form_key = '$form_key' and system_id = '$system_id' and flow_id = '$flow_id'"); - list($current_assigner)=DB::fields("select current_assigner from subflow where form_key = '$form_key' order by seq desc limit 0, 1"); - if ($current_assigner == $user_id) $apply_st = 2; // 修改中,還未提交 - else $apply_st = 9; // 已到下一關,無法䖺改 -} - -if ($apply_st > 2) { - echo""; - exit; -} - -if ($apply_st==1) { - $wf = new WorkFlow($system_id, $flow_id, $form_id); - $wf->initWorkFlow($user_id); - $form_key = $wf->flowContext->getFormKey(); -} else { - $wf = new WorkFlow($system_id, $flow_id, $form_id, $form_key); -} - -#獲取簽核意見 -$assign_opinions = Assign::get_records($form_key); - -#會簽部門意見 -$subflow_assign_opinions = SubflowManager::getCounterSignComments($form_key); - -//預設冇有摺扣 -$wf->setFormData(['discount' => 100]); -$flowName = $wf->getFlowName(); -$assigner = $wf->getAssignerList(); -$assign_status = $wf->getAssignStatus($assigner); -$if_show_assign = true; -//加載流程圖 -//$fc = WorkFLowItems::get_records($flow->getSystemID(), $flow->getFlowID()); -//$path = $fc[0]->wf_file; -//echo dirname(__DIR__)."/../"."$path"; - -//$flow_chart = file_get_contents(dirname(__DIR__) . '/' . $path); -#是否可會簽 -$isSplitable = $wf->isSplitable(); - -//表單數據 -#客戶表 -#1.電梯品牌選項 -$sql = "select code_name value ,content label from code where field_name='elevator_brand' order by code_name asc "; -$elevator_brand_opt = DB::result($sql); -#2.保養方式 -$sql = "select code_name value ,content label from code where field_name='maintain_kind'"; -$maintain_kind_opt = DB::result($sql); -#3.電梯類型 -$sql = "select code_name value ,content label from code where field_name='maintain_elevator_kind'"; -$elevator_kind_opt = DB::result($sql); -#4.付款方式 -$sql = "select code_name value ,content label from code where field_name='payment_kind' order by code_name+ 0 asc"; -$payment_kind_opt = DB::result($sql); -#5.契約性質 -$sql = "select code_name value ,content label from code where field_name='contract_kind'"; -$contract_kind_opt = DB::result($sql); -#6.是否贈送M1 -$is_m1_bundle_opt = [ - ['label' => '是', 'value' => 'Y'], - ['label' => '否', 'value' => 'N'] - -]; -#7.機種 -$sql = "select code_name value ,content label from code where field_name='fp_kind'"; -$fp_kind_opt = DB::result($sql); -#抓取有望客戶資料 - - -$vol_no = $_GET['vol_no']; -$where = " and vol_no='$vol_no'"; -$sql = "SELECT * FROM hope_contract_customer where 1=1 $where ORDER BY vol_no"; -$hope_contract = DB::result($sql); -$hope_contract = empty($hope_contract) ? [] : $hope_contract[0]; -#寫入 con_maintance_examine_apply -if ($apply_st==1) { - #獲取評審單號 - $apply_key = get_sequnece_no('cmea_apply_key', date('ym')); - //var_dump($hope_contract); - $insert_data = [ - 'apply_key' => $apply_key, - 'vol_no' => $vol_no, - 'form_key' => $form_key, - 'address' => $hope_contract['address'], - 'case_name' => $hope_contract['customer'], - 'num' => $hope_contract['num'], - 'brand' => '', - 'customer' => $hope_contract['customer'], - 'salesman' => empty($hope_contract['salesman']) ? $user_id : $hope_contract['salesman'], - 'progress_remark' => $hope_contract['progress_status'] - //'platform_company'=>'', - // 'platforom_company_tel'=> '' - - ]; - //var_dump($insert_data); - DB::insert_table('con_maintance_examine_apply', $insert_data); -} - -$table = 'con_maintance_examine_apply'; -#可編輯的列 -$editableColumn = [ - 'apply_key' => [ - 'label' => "評審單號", "value" => "$apply_key", "tag" => 'text', - 'attr' => [ - 'readonly=true ', - 'class' => 'form-control form-control-sm' - ] - ], - 'vol_no' => ['label' => "卷號", "value" => "", "tag" => 'text', 'attr' => ['readonly=true ', 'class' => 'form-control form-control-sm']], - 'address' => ['label' => "現場地址", "value" => "", "tag" => 'text', 'attr' => ['required', 'class' => 'form-control form-control-sm']], - 'case_name' => ['label' => "現場名稱", "value" => "", "tag" => 'text', 'attr' => ['required', 'class' => 'form-control form-control-sm']], - 'brand' => ['label' => "電梯品牌", "value" => "", "tag" => 'select', 'attr' => ['required', 'class' => 'form-control form-control-sm'], 'options' => $elevator_brand_opt], - 'num' => ['label' => "數量", "value" => "", "tag" => 'digits', 'attr' => ['required', 'min=1', 'class' => 'form-control form-control-sm']], - 'salesman' => ['label' => "營業員", "value" => "", "tag" => 'text', 'attr' => ['required', 'class' => 'form-control form-control-sm']], - 'maintain_kind' => ['label' => "保養方式", "value" => "", "tag" => 'select', 'attr' => ['required', 'class' => 'form-control form-control-sm'], 'options' => $maintain_kind_opt], - 'contract_begin_date' => ['label' => "契約期限開始", "value" => "", "tag" => 'date', 'attr' => ['required', 'class' => 'date form-control form-control-sm']], - 'contract_end_date' => ['label' => "契約期限結束", "value" => "", "tag" => 'date', 'attr' => ['required', 'class' => 'date form-control form-control-sm']], - 'contract_kind' => ['label' => "契約性質", "value" => "", "tag" => 'select', 'attr' => ['class' => 'form-control form-control-sm'], 'options' => $contract_kind_opt], - 'introducer' => ['label' => "介紹人", "value" => "", "tag" => 'text', 'attr' => ['class' => 'form-control form-control-sm']], - - 'payment_kind' => ['label' => "付款方式", "value" => "", "tag" => 'select', 'attr' => ['required', 'class' => 'form-control form-control-sm'], 'options' => $payment_kind_opt], - -]; -$where = " and apply_key='$apply_key'"; - -$sql = "SELECT * FROM $table where 1=1 $where ORDER BY vol_no"; -$data = []; -$data = DB::result($sql); - -#電梯詳細資料 -$con_maintance_examine_clear_columm = [ - 'register_code' => ['label' => "電梯許可證代碼", "value" => "", "tag" => 'text', 'attr' => ['colspan' => 2, 'name' => 'register_code[]', 'required', 'class' => 'form-control form-control-sm']], - 'elevator_brand' => ['label' => "品牌", "value" => "", "tag" => 'select', 'attr' => ['colspan' => 2, 'name' => 'elevator_brand[]', 'class' => 'form-control form-control-sm'], 'options' => $elevator_brand_opt], - 'elevator_kind' => ['label' => "電梯類型", "value" => "", "tag" => 'select', 'attr' => ['name' => 'elevator_kind[]', 'required', 'colspan' => 2, 'class' => 'form-control form-control-sm'], 'options' => $elevator_kind_opt], - 'spec' => ['label' => "規格型號", "value" => "", "tag" => 'select', 'attr' => ['colspan' => 2, 'name' => 'spec[]', 'class' => 'form-control form-control-sm'], 'options' => $fp_kind_opt], - 'weight' => ['label' => "載重(KG)", "value" => "", "tag" => 'digits', 'attr' => ['name' => 'weight[]', 'gt=0', 'min=0', 'required', 'class' => 'form-control form-control-sm']], - 'speed' => ['label' => "速度(m/min)", "value" => "", "tag" => 'number', 'attr' => ['colspan' => 2, 'name' => 'speed[]', 'gt=0', 'min=0', 'required', 'class' => 'form-control form-control-sm']], - 'stop' => ['label' => "停數", "value" => "", "tag" => 'number', 'attr' => ['name' => 'stop[]', 'class' => 'form-control form-control-sm']], - 'floors' => ['label' => "層數", "value" => "", "tag" => 'digits', 'attr' => ['name' => 'floors[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], - 'persons' => ['label' => "人乘", "value" => "", "tag" => 'digits', 'attr' => ['name' => 'persons[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], - - 'maintain_times' => ['label' => "保養次數", "value" => "", "tag" => 'digits', 'attr' => ['name' => 'maintain_times[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], - 'maintain_months' => ['label' => "保養月數", "value" => "", "tag" => 'digits', 'attr' => ['name' => 'maintain_months[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], - 'maintain_period' => ['label' => "保養周期", "value" => "", "tag" => 'number', 'attr' => ['name' => 'maintain_period[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], - 'is_m1_bundle' => ['label' => "贈送M1", "value" => "", "tag" => 'select', 'attr' => ['name' => 'is_m1_bundle[]', 'required', 'class' => 'form-control form-control-sm'], 'options' => $is_m1_bundle_opt], - 'useful_years' => ['label' => "竣工檢查年度", "value" => "", "tag" => 'digits', 'attr' => ['colspan' => 2, 'required', 'gt=0', 'min=0', 'name' => 'useful_years[]', 'class' => 'form-control form-control-sm']], - 'last_check_date' => ['label' => "上次年檢日期", "value" => "", "tag" => 'number', 'attr' => ['required', 'name' => 'last_check_date[]', 'colspan' => 2, 'class' => 'form-control form-control-sm']], - - 'annual_survey_expense' => ['label' => "年檢費用(元)", "value" => "", "tag" => 'number', 'attr' => ['required', 'name' => 'annual_survey_expense[]', 'colspan' => 2, 'class' => 'form-control form-control-sm ']], - - 'maintain_times' => ['label' => "保養次數", "tag" => 'digits', 'attr' => ['name' => 'maintain_times[]', "value" => "1", 'min=1', 'required', 'class' => 'form-control form-control-sm']], - 'register_code' => ['label' => "電梯許可證代碼", "tag" => 'text', 'attr' => ['colspan' => 2, 'name' => 'register_code[]', "placeholder" => "無證號請輸入A,B...", 'required', 'class' => 'form-control form-control-sm']], - 'maintain_months' => ['label' => "保養月數", "tag" => 'digits', 'attr' => ['name' => 'maintain_months[]', "value" => "12", 'min=12', 'required', 'class' => 'form-control form-control-sm']], - 'maintain_period' => ['label' => "保養周期", "tag" => 'digits', 'attr' => ['name' => 'maintain_period[]', "value" => "1", 'min=1', 'required', 'class' => 'form-control form-control-sm']], - 'is_m1_bundle' => ['label' => "贈送M1", "value" => "", "tag" => 'select', 'attr' => ['name' => 'is_m1_bundle[]', 'required', 'class' => 'form-control form-control-sm'], 'options' => $is_m1_bundle_opt], - 'stand_price' => ['label' => "標準價格(元/月)", "value" => "", "tag" => 'text', 'attr' => ['required', "readonly", 'colspan' => 2, 'name' => 'stand_price[]', 'class' => 'form-control form-control-sm']], - 'contract_price' => ['label' => "契約報價(元/月)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, 'name' => 'contract_price[]', 'class' => 'form-control form-control-sm']], - 'sold_price' => ['label' => "契約成交價(元/月)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, 'name' => 'sold_price[]', 'class' => 'form-control form-control-sm']], - -]; -$con_maintance_examine_clear = DB::result("SELECT " . implode(',', array_keys($con_maintance_examine_clear_columm)) . - " FROM con_maintance_examine_clear where 1=1 and apply_key='$apply_key' and cmstatus='Y' "); -$j = 0; -$col_count = 12; -$cmecRow = " "; -foreach ($con_maintance_examine_clear_columm as $key => $val) { - $fieldVal = ""; - $_input = $val['tag'] == 'select' ? - FormHelper::select('', $val['options'], $fieldVal, $val['attr']) - : FormHelper::text("$key", $fieldVal, $val['attr'], $val['tag']); - // : ""; - $cmecRow .= "
$_input"; - if ((++$j % $col_count) == 0) { - if ($j == $col_count) $cmecRow .= ""; - $cmecRow .= ""; - } -} - - -$cmecRow .= ""; -function base_url($url) -{ - return "https://www.masada.com.tw/static/" . $url; -} -function get_sequnece_no($seq_name = '', $p_yyyymm = '') -{ - - if (empty($p_yyyymm) || empty($seq_name)) return null; - #當前年月 - list($yyyymm, $prefix) = DB::fields("select yyyymm ,prefix from sequence where seq_name='$seq_name' "); - if ($p_yyyymm != $yyyymm) { - DB::query("update sequence set yyyymm='$p_yyyymm' , current_val='10000' where seq_name='$seq_name' "); - } - // echo "SELECT concat( $prefix,,substring(nextval('$seq_name'),2)) seq_no "; - list($seq_no) = DB::fields("SELECT concat( '$prefix','$p_yyyymm',substring( appwms.nextval('$seq_name'),2)) seq_no "); - - - return $seq_no; -} - - -?> - - - - - - - - - - - - - - - - - - -
- - - - -
- -
- -
-
- - - ' /> - - - -
-
-
-

保養契約價格審核單

-
-
- -
-
- 契約信息 -
-
- - "; - foreach ($editableColumn as $key => $val) { - $j = (($i++) % 4); - $fieldVal = empty($data) ? "" : $data[0][$key]; - - $_input = $val['tag'] == 'select' ? - FormHelper::select("$key", $val['options'], $fieldVal, $val['attr']) - : FormHelper::text("$key", $fieldVal, $val['attr'], $val['tag']); - //""; - if ($i != 1 && $j == 0) { - echo " -
-
- "; - } - echo "
- " . $val['label'] . " -
-
- $_input -
- "; - } - echo "
"; - - ?> - -
-
- 洽商進度 -
-
- - -
-
-
-
- 電梯詳細資料 -
- - - - - - - - - - - empty($val['attr']['colspan']) ? 1 : $val['attr']['colspan']], $val['label']); - //echo ""; - if ((++$j % $col_count) == 0) { - if ($j == $col_count) echo ""; - - - echo ""; - } - } - - - - - ?> - - - - - $val) { - $j = 0; - $cmecRow = " "; - foreach ($con_maintance_examine_clear_columm as $col => $col_def) { - - $fieldVal = empty($val) ? "" : $val[$col]; - $_input = $col_def['tag'] == 'select' ? - FormHelper::select($col, $col_def['options'], $fieldVal, $col_def['attr']) - : FormHelper::text($col, $fieldVal, $col_def['attr'], $col_def['tag']); - $cmecRow .= ""; - if ((++$j % $col_count) == 0) { - $cmecRow .= ""; - $cmecRow .= ""; - } - } - - - echo $cmecRow . ""; - } - ?> - -
- 註意事項: -

1.速度單位是 米/分.

-

2.選擇贈送M1,保養月數需填寫60.

-

3.標準價格未帶出,請聯係業務部建立該規格報價.

-

4.無機房速度20~60米 以60米為標準.

- - -
" . $val['label'] . "操作
- $_input
- -
- -
-
- 簽核操作 -
-
- -
-
-
-
- 簽核狀態 -
-
- -
- -
- 下位簽核者 -
-
- - -
-
-   - -
- -
-
-
- -
-
-
- - -
- -
- - - - ' . $wf->getNodeDescriptions($as['flow_code']) . ' -
'; - $tmp_code = $as['flow_code']; - ?> -
"> -
- - - - -   - " . $as['position_name'] . " "; ?> - - - - - - -   - 申請人 "; ?> - 退回"; ?> - 會簽"; ?> - - - - 簽核於: - - - -
-
- -
- -
- -
- - - -
-
- -
-
-
- - - -
- - - -
- +0) { + echo""; + exit; +} +*/ + +#係統ID +$system_id = 'con'; +#流程ID +$flow_id = 'con01'; +#表單號 $form_id; +$form_id = ""; +#價審單狀態 +$apply_st = ""; +list($apply_key, $form_key) = DB::fields("SELECT apply_key, form_key from con_maintance_examine_apply where vol_no='$vol_no' order by apply_key desc limit 0, 1"); +if (empty($apply_key)) $apply_st = 1; // 準備新增 +else { + //list($flow_code)=DB::fields("select flow_code from flow where form_key = '$form_key' and system_id = '$system_id' and flow_id = '$flow_id'"); + list($current_assigner) = DB::fields("select current_assigner from subflow where form_key = '$form_key' order by seq desc limit 0, 1"); + if ($current_assigner == $user_id) $apply_st = 2; // 修改中,還未提交 + else $apply_st = 9; // 已到下一關,無法䖺改 +} + +if ($apply_st > 2) { + echo ""; + exit; +} + +if ($apply_st == 1) { + $wf = new WorkFlow($system_id, $flow_id, $form_id); + $wf->initWorkFlow($user_id); + $form_key = $wf->flowContext->getFormKey(); +} else { + $wf = new WorkFlow($system_id, $flow_id, $form_id, $form_key); +} + +#獲取簽核意見 +$assign_opinions = Assign::get_records($form_key); + +#會簽部門意見 +$subflow_assign_opinions = SubflowManager::getCounterSignComments($form_key); + +//預設冇有摺扣 +$wf->setFormData(['discount' => 100]); +$flowName = $wf->getFlowName(); +$assigner = $wf->getAssignerList(); +$assign_status = $wf->getAssignStatus($assigner); + +$if_show_assign = true; +//加載流程圖 +//$fc = WorkFLowItems::get_records($flow->getSystemID(), $flow->getFlowID()); +//$path = $fc[0]->wf_file; +//echo dirname(__DIR__)."/../"."$path"; + +//$flow_chart = file_get_contents(dirname(__DIR__) . '/' . $path); +#是否可會簽 +$isSplitable = $wf->isSplitable(); + +//表單數據 +#客戶表 +#1.電梯品牌選項 +$sql = "SELECT code_name value ,content label FROM code WHERE field_name='elevator_brand' order by code_name asc "; +$elevator_brand_opt = DB::result($sql); +#2.保養方式 +$sql = "SELECT code_name value ,content label FROM code WHERE field_name='maintain_kind'"; +$maintain_kind_opt = DB::result($sql); +#3.電梯類型 +$sql = "SELECT code_name value ,content label FROM code WHERE field_name='maintain_elevator_kind'"; +$elevator_kind_opt = DB::result($sql); +#4.付款方式 +$sql = "SELECT code_name value ,content label FROM code WHERE field_name='payment_kind' order by code_name+ 0 asc"; +$payment_kind_opt = DB::result($sql); +#5.契約性質 +$sql = "SELECT code_name value ,content label FROM code WHERE field_name='contract_kind'"; +$contract_kind_opt = DB::result($sql); +#6.是否贈送M1 +$is_m1_bundle_opt = [ + ['label' => '是', 'value' => 'Y'], + ['label' => '否', 'value' => 'N'] + +]; +#7.機種 +$sql = "SELECT code_name value ,content label FROM code WHERE field_name='fp_kind'"; +$fp_kind_opt = DB::result($sql); +#抓取有望客戶資料 + + +$vol_no = $_GET['vol_no']; +$where = " and vol_no='$vol_no'"; +$sql = "SELECT * FROM hope_contract_customer where 1=1 $where ORDER BY vol_no"; +// print_r($sql); +$hope_contract = DB::result($sql); +$hope_contract = empty($hope_contract) ? [] : $hope_contract[0]; +#寫入 con_maintance_examine_apply +if ($apply_st == 1) { + #獲取評審單號 + $apply_key = get_sequnece_no('cmea_apply_key', date('ym')); + //var_dump($hope_contract); + $insert_data = [ + 'apply_key' => $apply_key, + 'vol_no' => $vol_no, + 'form_key' => $form_key, + 'address' => $hope_contract['address'], + 'case_name' => $hope_contract['customer'], + 'num' => $hope_contract['num'], + 'brand' => '', + 'customer' => $hope_contract['customer'], + 'salesman' => empty($hope_contract['salesman']) ? $user_id : $hope_contract['salesman'], + 'progress_remark' => $hope_contract['progress_status'] + //'platform_company'=>'', + // 'platforom_company_tel'=> '' + + ]; + //var_dump($insert_data); + DB::insert_table('con_maintance_examine_apply', $insert_data); +} + +$table = 'con_maintance_examine_apply'; +#可編輯的列 +$editableColumn = [ + 'apply_key' => [ + 'label' => "評審單號", "value" => "$apply_key", "tag" => 'text', + 'attr' => [ + 'readonly=true ', + 'class' => 'form-control form-control-sm' + ] + ], + 'vol_no' => ['label' => "卷號", "value" => "", "tag" => 'text', 'attr' => ['readonly=true ', 'class' => 'form-control form-control-sm']], + 'address' => ['label' => "現場地址", "value" => "", "tag" => 'text', 'attr' => ['required', 'class' => 'form-control form-control-sm']], + 'case_name' => ['label' => "現場名稱", "value" => "", "tag" => 'text', 'attr' => ['required', 'class' => 'form-control form-control-sm']], + 'brand' => ['label' => "電梯品牌", "value" => "", "tag" => 'select', 'attr' => ['required', 'class' => 'form-control form-control-sm'], 'options' => $elevator_brand_opt], + 'num' => ['label' => "數量", "value" => "", "tag" => 'digits', 'attr' => ['required', 'min=1', 'class' => 'form-control form-control-sm']], + 'salesman' => ['label' => "營業員", "value" => "", "tag" => 'text', 'attr' => ['required', 'class' => 'form-control form-control-sm']], + 'maintain_kind' => ['label' => "保養方式", "value" => "", "tag" => 'select', 'attr' => ['required', 'class' => 'form-control form-control-sm'], 'options' => $maintain_kind_opt], + 'contract_begin_date' => ['label' => "契約期限開始", "value" => "", "tag" => 'date', 'attr' => ['required', 'class' => 'date form-control form-control-sm']], + 'contract_end_date' => ['label' => "契約期限結束", "value" => "", "tag" => 'date', 'attr' => ['required', 'class' => 'date form-control form-control-sm']], + 'contract_kind' => ['label' => "契約性質", "value" => "", "tag" => 'select', 'attr' => ['class' => 'form-control form-control-sm'], 'options' => $contract_kind_opt], + 'introducer' => ['label' => "介紹人", "value" => "", "tag" => 'text', 'attr' => ['class' => 'form-control form-control-sm']], + + 'payment_kind' => ['label' => "付款方式", "value" => "", "tag" => 'select', 'attr' => ['required', 'class' => 'form-control form-control-sm'], 'options' => $payment_kind_opt], + +]; +$where = " and apply_key='$apply_key'"; + +$sql = "SELECT * FROM $table where 1=1 $where ORDER BY vol_no"; +$data = []; +$data = DB::result($sql); + +#電梯詳細資料 +$con_maintance_examine_clear_columm = [ + 'register_code' => ['label' => "電梯許可證代碼", "value" => "", "tag" => 'text', 'attr' => ['colspan' => 2, 'name' => 'register_code[]', 'required', 'class' => 'form-control form-control-sm']], + 'elevator_brand' => ['label' => "品牌", "value" => "", "tag" => 'select', 'attr' => ['colspan' => 2, 'name' => 'elevator_brand[]', 'class' => 'form-control form-control-sm'], 'options' => $elevator_brand_opt], + 'elevator_kind' => ['label' => "電梯類型", "value" => "", "tag" => 'select', 'attr' => ['name' => 'elevator_kind[]', 'required', 'colspan' => 2, 'class' => 'form-control form-control-sm'], 'options' => $elevator_kind_opt], + 'spec' => ['label' => "規格型號", "value" => "", "tag" => 'select', 'attr' => ['colspan' => 2, 'name' => 'spec[]', 'class' => 'form-control form-control-sm'], 'options' => $fp_kind_opt], + 'weight' => ['label' => "載重(KG)", "value" => "", "tag" => 'digits', 'attr' => ['name' => 'weight[]', "placeholder" => "載重", 'gt=0', 'min=0', 'required', 'class' => 'form-control form-control-sm']], + 'speed' => ['label' => "速度(m/min)", "value" => "", "tag" => 'number', 'attr' => ['colspan' => 2, 'name' => 'speed[]', "placeholder" => "速度", 'gt=0', 'min=0', 'required', 'class' => 'form-control form-control-sm']], + 'stop' => ['label' => "停數", "value" => "", "tag" => 'number', 'attr' => ['name' => 'stop[]', "placeholder" => "停數", 'class' => 'form-control form-control-sm']], + 'floors' => ['label' => "層數", "value" => "", "tag" => 'digits', 'attr' => ['name' => 'floors[]', 'min=1', 'required', "placeholder" => "層數", 'class' => 'form-control form-control-sm']], + 'persons' => ['label' => "人乘", "value" => "", "tag" => 'digits', 'attr' => ['name' => 'persons[]', 'min=1', 'required', "placeholder" => "人乘", 'class' => 'form-control form-control-sm']], + + 'maintain_times' => ['label' => "保養次數", "value" => "", "tag" => 'digits', 'attr' => ['name' => 'maintain_times[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], + 'maintain_months' => ['label' => "保養月數", "value" => "", "tag" => 'digits', 'attr' => ['name' => 'maintain_months[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], + 'maintain_period' => ['label' => "保養周期", "value" => "", "tag" => 'number', 'attr' => ['name' => 'maintain_period[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], + 'is_m1_bundle' => ['label' => "贈送M1", "value" => "", "tag" => 'select', 'attr' => ['name' => 'is_m1_bundle[]', 'required', 'class' => 'form-control form-control-sm'], 'options' => $is_m1_bundle_opt], + 'useful_years' => ['label' => "竣工檢查年度", "value" => "", "tag" => 'digits', 'attr' => ['colspan' => 2, 'required', "placeholder" => "竣工檢查年度", 'gt=0', 'min=0', 'name' => 'useful_years[]', 'class' => 'form-control form-control-sm']], + 'last_check_date' => ['label' => "上次年檢日期", "value" => "", "tag" => 'number', 'attr' => ['required', 'name' => 'last_check_date[]', "placeholder" => "上次年檢日期", 'colspan' => 2, 'class' => 'form-control form-control-sm']], + + 'annual_survey_expense' => ['label' => "年檢費用(元)", "value" => "", "tag" => 'number', 'attr' => ['required', 'name' => 'annual_survey_expense[]', "placeholder" => "年檢費用", 'colspan' => 2, 'class' => 'form-control form-control-sm ']], + + 'maintain_times' => ['label' => "保養次數", "tag" => 'digits', 'attr' => ['name' => 'maintain_times[]', "value" => "1", 'min=1', 'required', 'class' => 'form-control form-control-sm']], + 'register_code' => ['label' => "電梯許可證代碼", "tag" => 'text', 'attr' => ['colspan' => 2, 'name' => 'register_code[]', "placeholder" => "無證號請輸入A,B...", 'required', 'class' => 'form-control form-control-sm']], + 'maintain_months' => ['label' => "保養月數", "tag" => 'digits', 'attr' => ['name' => 'maintain_months[]', "value" => "12", 'min=12', 'required', 'class' => 'form-control form-control-sm']], + 'maintain_period' => ['label' => "保養周期", "tag" => 'digits', 'attr' => ['name' => 'maintain_period[]', "value" => "1", 'min=1', 'required', 'class' => 'form-control form-control-sm']], + 'is_m1_bundle' => ['label' => "贈送M1", "value" => "", "tag" => 'select', 'attr' => ['name' => 'is_m1_bundle[]', 'required', 'class' => 'form-control form-control-sm'], 'option' => 'disable', 'options' => $is_m1_bundle_opt], + 'stand_price' => ['label' => "標準價格(元/月)", "value" => "", "tag" => 'text', 'attr' => ['required', "readonly", 'colspan' => 2, 'name' => 'stand_price[]', 'class' => 'form-control form-control-sm']], + 'contract_price' => ['label' => "契約報價(元/月)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, "placeholder" => "契約報價", 'name' => 'contract_price[]', 'class' => 'form-control form-control-sm']], + 'sold_price' => ['label' => "契約成交價(元/月)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, 'name' => 'sold_price[]', 'placeholder' => '契約成交價', 'class' => 'form-control form-control-sm']], + +]; +$con_maintance_examine_clear = DB::result("SELECT " . implode(',', array_keys($con_maintance_examine_clear_columm)) . + " FROM con_maintance_examine_clear where 1=1 and apply_key='$apply_key' and cmstatus='Y' "); + +$j = 0; +$col_count = 12; +$cmecRow = " "; +foreach ($con_maintance_examine_clear_columm as $key => $val) { + $fieldVal = ""; + $_input = $val['tag'] == 'select' ? + FormHelper::select('', $val['options'], $fieldVal, $val['attr']) + : FormHelper::text("$key", $fieldVal, $val['attr'], $val['tag']); + // : ""; + $cmecRow .= "
$_input"; + if ((++$j % $col_count) == 0) { + if ($j == $col_count) $cmecRow .= ""; + $cmecRow .= ""; + } +} +$cmecRow .= ""; +function base_url($url) +{ + return "https://www.masada.com.tw/static/" . $url; +} +function get_sequnece_no($seq_name = '', $p_yyyymm = '') +{ + + if (empty($p_yyyymm) || empty($seq_name)) return null; + #當前年月 + list($yyyymm, $prefix) = DB::fields("select yyyymm ,prefix from sequence where seq_name='$seq_name' "); + if ($p_yyyymm != $yyyymm) { + DB::query("update sequence set yyyymm='$p_yyyymm' , current_val='10000' where seq_name='$seq_name' "); + } + // echo "SELECT concat( $prefix,,substring(nextval('$seq_name'),2)) seq_no "; + list($seq_no) = DB::fields("SELECT concat( '$prefix','$p_yyyymm',substring( appwms.nextval('$seq_name'),2)) seq_no "); + + + return $seq_no; +} +$sql = "SELECT * FROM account WHERE accountid = '$user_id' "; +list($result) = DB::result($sql); +if ($result['department_id'] == '511') { + $managerid = 'M0137'; + $managername = '劉永德'; +} else if ($result['department_id'] == '512') { + $managerid = 'M0137'; + $managername = '劉永德'; +} else if ($result['department_id'] == '513') { + $managerid = 'M0086'; + $managername = '李烘銘'; +} else if ($result['department_id'] == '514') { + $managerid = 'M0033'; + $managername = '吳育宗'; +} + +if ($result['department_id'] == 'M0137' || $result['department_id'] == 'M0086' || $result['department_id'] == 'M0033') { + $managerid = 'M0008'; + $managername = '詹益彰'; +} + +?> + + + + + + + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ + + ' /> + + + +
+
+
+

保養契約價格審核單

+
+
+ +
+
+ 契約信息 +
+
+ + "; + foreach ($editableColumn as $key => $val) { + $j = (($i++) % 4); + $fieldVal = empty($data) ? "" : $data[0][$key]; + + $_input = $val['tag'] == 'select' ? + FormHelper::select("$key", $val['options'], $fieldVal, $val['attr']) + : FormHelper::text("$key", $fieldVal, $val['attr'], $val['tag']); + //""; + if ($i != 1 && $j == 0) { + echo " +
+
+ "; + } + echo "
+ " . $val['label'] . " +
+
+ $_input +
+ "; + } + echo "
"; + + ?> + +
+
+ 洽商進度 +
+
+ + +
+
+
+
+ 電梯詳細資料 +
+ + + + + + + + + + + "; + + $i = 0; + $cmecRow = ''; + foreach ($con_maintance_examine_clear_columm as $col => $col_def) { + echo FormHelper::tag("th", ['colspan' => empty($col_def['attr']['colspan']) ? 1 : $col_def['attr']['colspan']], $col_def['label']); + + if ((++$j % $col_count) == 0) { + if ($j == $col_count) echo ""; + echo ""; + } + } + echo ''; + + + ?> + + + + + + $val) { + $j = 0; + $cmecRow = ""; + foreach ($con_maintance_examine_clear_columm as $col => $col_def) { + + $fieldVal = empty($val) ? "" : $val[$col]; + $_input = $col_def['tag'] == 'select' ? + FormHelper::select($col, $col_def['options'], $fieldVal, $col_def['attr']) + : FormHelper::text($col, $fieldVal, $col_def['attr'], $col_def['tag']); + $cmecRow .= ""; + if ((++$j % $col_count) == 0) { + $cmecRow .= ""; + $cmecRow .= ""; + } + } + + + echo $cmecRow . ""; + } + ?> + + +
+ 註意事項: +

1.速度單位是 米/分.

+

2.選擇贈送M1,保養月數需填寫60.

+

3.標準價格未帶出,請聯係業務部建立該規格報價.

+

4.無機房速度20~60米 以60米為標準.

+ + +
操作
+ $_input
+ +
+ +
+
+ 簽核操作 +
+
+ +
+
+
+
+ 簽核狀態 +
+
+ +
+ +
+ 下位簽核者 +
+
+ + +
+
+   + +
+ +
+
+
+ +
+
+
+ + +
+ +
+ + + + ' . $wf->getNodeDescriptions($as['flow_code']) . ' +
'; + $tmp_code = $as['flow_code']; + ?> +
"> +
+ + + + +   + " . $as['position_name'] . " "; ?> + + + + + + +   + 申請人 "; ?> + 退回"; ?> + 會簽"; ?> + + + + 簽核於: + + + +
+
+ +
+ +
+ +
+ + + +
+
+ +
+
+
+ + + +
+ + + + + \ No newline at end of file diff --git a/wms/cont/apply_form1.php b/wms/cont/apply_form1.php new file mode 100644 index 00000000..b965ba72 --- /dev/null +++ b/wms/cont/apply_form1.php @@ -0,0 +1,912 @@ +0) { + echo""; + exit; +} +*/ + +#係統ID +$system_id = 'con'; +#流程ID +$flow_id = 'con01'; +#表單號 $form_id; +$form_id = ""; +#價審單狀態 +$apply_st = ""; +list($apply_key, $form_key, $salesman) = DB::fields("SELECT apply_key, form_key,salesman FROM con_maintance_examine_apply WHERE vol_no='$vol_no' ORDER BY apply_key desc limit 0, 1"); +// echo '
';
+// print_r($apply_key);
+// echo '
'; +// exit; +// if ($salesman != $user_id) { +// echo ''; +// exit; +// } +if (empty($apply_key)) $apply_st = 1; // 準備新增 +else { + //list($flow_code)=DB::fields("select flow_code from flow where form_key = '$form_key' and system_id = '$system_id' and flow_id = '$flow_id'"); + list($current_assigner) = DB::fields("SELECT current_assigner FROM subflow WHERE form_key = '$form_key' ORDER BY seq desc limit 0, 1"); + if ($current_assigner == $user_id) $apply_st = 2; // 修改中,還未提交 + else $apply_st = 9; // 已到下一關,無法䖺改 +} + +// if ($apply_st > 2) { +// echo ""; +// exit; +// } + +if ($apply_st == 1) { + $wf = new WorkFlow($system_id, $flow_id, $form_id); + $wf->initWorkFlow($user_id); + $form_key = $wf->flowContext->getFormKey(); +} else { + $wf = new WorkFlow($system_id, $flow_id, $form_id, $form_key); +} + +#獲取簽核意見 +$assign_opinions = Assign::get_records($form_key); + +#會簽部門意見 +$subflow_assign_opinions = SubflowManager::getCounterSignComments($form_key); + +//預設冇有摺扣 +$wf->setFormData(['discount' => 100]); +$flowName = $wf->getFlowName(); +$assigner = $wf->getAssignerList(); +$assign_status = $wf->getAssignStatus($assigner); +$if_show_assign = true; +//加載流程圖 +//$fc = WorkFLowItems::get_records($flow->getSystemID(), $flow->getFlowID()); +//$path = $fc[0]->wf_file; +//echo dirname(__DIR__)."/../"."$path"; + +//$flow_chart = file_get_contents(dirname(__DIR__) . '/' . $path); +#是否可會簽 +$isSplitable = $wf->isSplitable(); + +//表單數據 +#客戶表 +#1.電梯品牌選項 +$sql = "select code_name value ,content label from code where field_name='elevator_brand' order by code_name asc "; +$elevator_brand_opt = DB::result($sql); +#2.保養方式 +$sql = "select code_name value ,content label from code where field_name='maintain_kind'"; +$maintain_kind_opt = DB::result($sql); +#3.電梯類型 +$sql = "select code_name value ,content label from code where field_name='maintain_elevator_kind'"; +$elevator_kind_opt = DB::result($sql); +#4.付款方式 +$sql = "select code_name value ,content label from code where field_name='payment_kind' order by code_name+ 0 asc"; +$payment_kind_opt = DB::result($sql); +#5.契約性質 +$sql = "select code_name value ,content label from code where field_name='contract_kind'"; +$contract_kind_opt = DB::result($sql); +#6.是否贈送M1 +$is_m1_bundle_opt = [ + ['label' => '是', 'value' => 'Y'], + ['label' => '否', 'value' => 'N'] + +]; +#7.機種 +$sql = "select code_name value ,content label from code where field_name='fp_kind'"; +$fp_kind_opt = DB::result($sql); +#抓取有望客戶資料 + +$vol_no = $_GET['vol_no']; +$where = " and vol_no='$vol_no'"; +$sql = "SELECT * FROM hope_contract_customer where 1=1 $where ORDER BY vol_no"; +$hope_contract = DB::result($sql); +$hope_contract = empty($hope_contract) ? [] : $hope_contract[0]; +#寫入 con_maintance_examine_apply +if ($apply_st == 1) { + #獲取評審單號 + $apply_key = get_sequnece_no('cmea_apply_key', date('ym')); + //var_dump($hope_contract); + $insert_data = [ + 'apply_key' => $apply_key, + 'vol_no' => $vol_no, + 'form_key' => $form_key, + 'address' => $hope_contract['address'], + 'case_name' => $hope_contract['customer'], + 'num' => $hope_contract['num'], + 'brand' => '', + 'customer' => $hope_contract['customer'], + 'salesman' => empty($hope_contract['salesman']) ? $user_id : $hope_contract['salesman'], + 'progress_remark' => $hope_contract['progress_status'] + //'platform_company'=>'', + // 'platforom_company_tel'=> '' + + ]; + //var_dump($insert_data); + DB::insert_table('con_maintance_examine_apply', $insert_data); +} +#抓使用者主管 +$sql = "SELECT * FROM account WHERE accountid = '$user_id' "; +list($result) = DB::result($sql); +if ($result['department_id'] == '511') { + $managerid = 'M0137'; + $managername = '劉永德'; +} else if ($result['department_id'] == '512') { + $managerid = 'M0137'; + $managername = '劉永德'; +} else if ($result['department_id'] == '513') { + $managerid = 'M0086'; + $managername = '李烘銘'; +} else if ($result['department_id'] == '514') { + $managerid = 'M0033'; + $managername = '吳育宗'; +} + +if ($result['department_id'] == 'M0137' || $result['department_id'] == 'M0086' || $result['department_id'] == 'M0033') { + $managerid = 'M0008'; + $managername = '詹益彰'; +} + +if ($result['department_id'] == 'M0008') { + $managerid = 'M0008'; + $managername = '詹益彰'; +} +$table = 'con_maintance_examine_apply'; +#可編輯的列 +$editableColumn = [ + 'apply_key' => [ + 'label' => "評審單號", "value" => "$apply_key", "tag" => 'text', + 'attr' => [ + 'readonly=true ', + 'class' => 'form-control form-control-sm' + ] + ], + 'vol_no' => ['label' => "卷號", "value" => "", "tag" => 'text', 'attr' => ['readonly=true ', 'class' => 'form-control form-control-sm']], + 'address' => ['label' => "現場地址", "value" => "", "tag" => 'text', 'attr' => ['required', 'class' => 'form-control form-control-sm']], + 'case_name' => ['label' => "現場名稱", "value" => "", "tag" => 'text', 'attr' => ['required', 'class' => 'form-control form-control-sm']], + 'brand' => ['label' => "電梯品牌", "value" => "", "tag" => 'select', 'attr' => ['required', 'class' => 'form-control form-control-sm'], 'options' => $elevator_brand_opt], + 'num' => ['label' => "數量", "value" => "", "tag" => 'digits', 'attr' => ['required', 'min=1', 'class' => 'form-control form-control-sm']], + 'salesman' => ['label' => "營業員", "value" => "", "tag" => 'text', 'attr' => ['required', 'class' => 'form-control form-control-sm']], + 'maintain_kind' => ['label' => "保養方式", "value" => "", "tag" => 'select', 'attr' => ['required', 'class' => 'form-control form-control-sm'], 'options' => $maintain_kind_opt], + 'contract_begin_date' => ['label' => "契約期限開始", "value" => "", "tag" => 'date', 'attr' => ['required', 'class' => 'date form-control form-control-sm']], + 'contract_end_date' => ['label' => "契約期限結束", "value" => "", "tag" => 'date', 'attr' => ['required', 'class' => 'date form-control form-control-sm']], + 'contract_kind' => ['label' => "契約性質", "value" => "", "tag" => 'select', 'attr' => ['class' => 'form-control form-control-sm'], 'options' => $contract_kind_opt], + 'introducer' => ['label' => "介紹人", "value" => "", "tag" => 'text', 'attr' => ['class' => 'form-control form-control-sm']], + + 'payment_kind' => ['label' => "付款方式", "value" => "", "tag" => 'select', 'attr' => ['required', 'class' => 'form-control form-control-sm'], 'options' => $payment_kind_opt], + +]; +$where = " and apply_key='$apply_key'"; + +$sql = "SELECT * FROM $table where 1=1 $where ORDER BY vol_no"; +$data = []; +$data = DB::result($sql); + +#電梯詳細資料 +$con_maintance_examine_clear_columm = [ + 'register_code' => ['label' => "電梯許可證代碼", "value" => "", "tag" => 'text', 'attr' => ['colspan' => 2, 'name' => 'register_code[]', 'required', 'class' => 'form-control form-control-sm']], + 'elevator_brand' => ['label' => "品牌", "value" => "", "tag" => 'select', 'attr' => ['colspan' => 2, 'name' => 'elevator_brand[]', 'class' => 'form-control form-control-sm'], 'options' => $elevator_brand_opt], + 'elevator_kind' => ['label' => "電梯類型", "value" => "", "tag" => 'select', 'attr' => ['name' => 'elevator_kind[]', 'required', 'colspan' => 2, 'class' => 'form-control form-control-sm'], 'options' => $elevator_kind_opt], + 'spec' => ['label' => "規格型號", "value" => "", "tag" => 'select', 'attr' => ['colspan' => 2, 'name' => 'spec[]', 'class' => 'form-control form-control-sm'], 'options' => $fp_kind_opt], + 'weight' => ['label' => "載重(KG)", "value" => "", "tag" => 'digits', 'attr' => ['name' => 'weight[]', "placeholder" => "載重", 'gt=0', 'min=0', 'required', 'class' => 'form-control form-control-sm']], + 'speed' => ['label' => "速度(m/min)", "value" => "", "tag" => 'number', 'attr' => ['colspan' => 2, 'name' => 'speed[]', "placeholder" => "速度", 'gt=0', 'min=0', 'required', 'class' => 'form-control form-control-sm']], + 'stop' => ['label' => "停數", "value" => "", "tag" => 'number', 'attr' => ['name' => 'stop[]', "placeholder" => "停數", 'class' => 'form-control form-control-sm']], + 'floors' => ['label' => "層數", "value" => "", "tag" => 'digits', 'attr' => ['name' => 'floors[]', 'min=1', 'required', "placeholder" => "層數", 'class' => 'form-control form-control-sm']], + 'persons' => ['label' => "人乘", "value" => "", "tag" => 'digits', 'attr' => ['name' => 'persons[]', 'min=1', 'required', "placeholder" => "人乘", 'class' => 'form-control form-control-sm']], + + 'maintain_times' => ['label' => "保養次數", "value" => "", "tag" => 'digits', 'attr' => ['name' => 'maintain_times[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], + 'maintain_months' => ['label' => "保養月數", "value" => "", "tag" => 'digits', 'attr' => ['name' => 'maintain_months[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], + 'maintain_period' => ['label' => "保養周期", "value" => "", "tag" => 'number', 'attr' => ['name' => 'maintain_period[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], + 'is_m1_bundle' => ['label' => "贈送M1", "value" => "", "tag" => 'select', 'attr' => ['name' => 'is_m1_bundle[]', 'required', 'class' => 'form-control form-control-sm'], 'options' => $is_m1_bundle_opt], + 'useful_years' => ['label' => "竣工檢查年度", "value" => "", "tag" => 'digits', 'attr' => ['colspan' => 2, 'required', "placeholder" => "竣工檢查年度", 'gt=0', 'min=0', 'name' => 'useful_years[]', 'class' => 'form-control form-control-sm']], + 'last_check_date' => ['label' => "上次年檢日期", "value" => "", "tag" => 'number', 'attr' => ['required', 'name' => 'last_check_date[]', "placeholder" => "上次年檢日期", 'colspan' => 2, 'class' => 'form-control form-control-sm']], + + 'annual_survey_expense' => ['label' => "年檢費用(元)", "value" => "", "tag" => 'number', 'attr' => ['required', 'name' => 'annual_survey_expense[]', "placeholder" => "年檢費用", 'colspan' => 2, 'class' => 'form-control form-control-sm ']], + + 'maintain_times' => ['label' => "保養次數", "tag" => 'digits', 'attr' => ['name' => 'maintain_times[]', "value" => "1", 'min=1', 'required', 'class' => 'form-control form-control-sm']], + 'register_code' => ['label' => "電梯許可證代碼", "tag" => 'text', 'attr' => ['colspan' => 2, 'name' => 'register_code[]', "placeholder" => "無證號請輸入A,B...", 'required', 'class' => 'form-control form-control-sm']], + 'maintain_months' => ['label' => "保養月數", "tag" => 'digits', 'attr' => ['name' => 'maintain_months[]', "value" => "12", 'min=12', 'required', 'class' => 'form-control form-control-sm']], + 'maintain_period' => ['label' => "保養周期", "tag" => 'digits', 'attr' => ['name' => 'maintain_period[]', "value" => "1", 'min=1', 'required', 'class' => 'form-control form-control-sm']], + 'is_m1_bundle' => ['label' => "贈送M1", "value" => "", "tag" => 'select', 'attr' => ['name' => 'is_m1_bundle[]', 'required', 'class' => 'form-control form-control-sm'], 'option' => 'disable', 'options' => $is_m1_bundle_opt], + 'stand_price' => ['label' => "標準價格(元/月)", "value" => "", "tag" => 'text', 'attr' => ['required', "readonly", 'colspan' => 2, 'name' => 'stand_price[]', 'class' => 'form-control form-control-sm']], + 'contract_price' => ['label' => "契約報價(元/月)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, "placeholder" => "契約報價", 'name' => 'contract_price[]', 'class' => 'form-control form-control-sm']], + 'sold_price' => ['label' => "契約成交價(元/月)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, 'name' => 'sold_price[]', 'class' => 'form-control form-control-sm']], + +]; +$con_maintance_examine_clear = DB::result("SELECT " . implode(',', array_keys($con_maintance_examine_clear_columm)) . + " FROM con_maintance_examine_clear where 1=1 and apply_key='$apply_key' and cmstatus='Y' "); +$j = 0; +$col_count = 12; +$cmecRow = " "; + +foreach ($con_maintance_examine_clear_columm as $key => $val) { + $fieldVal = ""; + $_input = $val['tag'] == 'select' ? + FormHelper::select('', $val['options'], $fieldVal, $val['attr']) + : FormHelper::text("$key", $fieldVal, $val['attr'], $val['tag']); + // : ""; + $cmecRow .= "
$_input"; + if ((++$j % $col_count) == 0) { + if ($j == $col_count) $cmecRow .= ""; + $cmecRow .= ""; + } +} + + +$cmecRow .= ""; +function base_url($url) +{ + return "https://www.masada.com.tw/static/" . $url; +} +function get_sequnece_no($seq_name = '', $p_yyyymm = '') +{ + + if (empty($p_yyyymm) || empty($seq_name)) return null; + #當前年月 + list($yyyymm, $prefix) = DB::fields("select yyyymm ,prefix from sequence where seq_name='$seq_name' "); + if ($p_yyyymm != $yyyymm) { + DB::query("update sequence set yyyymm='$p_yyyymm' , current_val='10000' where seq_name='$seq_name' "); + } + // echo "SELECT concat( $prefix,,substring(nextval('$seq_name'),2)) seq_no "; + list($seq_no) = DB::fields("SELECT concat( '$prefix','$p_yyyymm',substring( appwms.nextval('$seq_name'),2)) seq_no "); + + + return $seq_no; +} + + +?> + + + + + + + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ + + ' /> + + + +
+
+
+

保養契約價格審核單

+
+
+ +
+
+ 契約信息 +
+
+ + "; + foreach ($editableColumn as $key => $val) { + $j = (($i++) % 4); + $fieldVal = empty($data) ? "" : $data[0][$key]; + + $_input = $val['tag'] == 'select' ? + FormHelper::select("$key", $val['options'], $fieldVal, $val['attr']) + : FormHelper::text("$key", $fieldVal, $val['attr'], $val['tag']); + //""; + if ($i != 1 && $j == 0) { + echo " +
+
+ "; + } + echo "
+ " . $val['label'] . " +
+
+ $_input +
+ "; + } + echo "
"; + + ?> + +
+
+ 洽商進度 +
+
+ + +
+
+
+
+ 電梯詳細資料 +
+ + + + + + + + + + +
+ 註意事項: +

1.速度單位是 米/分.

+

2.選擇贈送M1,保養月數需填寫60.

+

3.標準價格未帶出,請聯係業務部建立該規格報價.

+

4.無機房速度20~60米 以60米為標準.

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
電梯許可代碼品牌電梯類型規格型號載重(KG)速度(m/min)停數層數人乘保養次數保養月數保養周期贈送M1
+
+
+
+ +
+
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
竣工檢查年度上次年檢日期年檢費用(元)標準價格(元/月)契約報價(元/月)契約成交價(元/月)刪除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ +
+
+ 簽核操作 +
+
+ +
+
+
+
+ 簽核狀態 +
+
+ +
+ +
+ 下位簽核者 +
+
+ + +
+
+   + +
+ +
+
+
+ +
+
+
+ +
+ +
+ + + + ' . $wf->getNodeDescriptions($as['flow_code']) . ' +
'; + $tmp_code = $as['flow_code']; + ?> +
"> +
+ + + + +   + " . $as['position_name'] . " "; ?> + + + + + + +   + 申請人 "; ?> + 退回"; ?> + 會簽"; ?> + + + + 簽核於: + + + +
+
+ +
+ +
+ +
+ + + +
+
+ +
+
+
+ + + +
+ + + + + + \ No newline at end of file diff --git a/wms/cont/sign_form.php b/wms/cont/sign_form.php index 307f1585..428e3a88 100644 --- a/wms/cont/sign_form.php +++ b/wms/cont/sign_form.php @@ -1,576 +1,577 @@ -vol_no; -require_once './FormHelper.php'; -require_once '../cont/MICalculator.php'; - -require_once './wf_common.php'; -$flow = new Flow($form_key); -// 當前節點簽核開始 - -$wf = new WorkFlow($flow->system_id, $flow->flow_id, $flow->form_id, $form_key); -#獲取簽核意見 -$assign_opinions = Assign::get_records($form_key); -$flowName = $wf->getFlowName(); - -//表單數據 -#客戶表 -#1.電梯品牌選項 -$sql = "select code_name value ,content label from code where field_name='elevator_brand'"; -$elevator_brand_opt = DB::result($sql); -#2.保養方式 -$sql = "select code_name value ,content label from code where field_name='maintain_kind'"; -$maintain_kind_opt = DB::result($sql); -#3.電梯類型 -$sql = "select code_name value ,content label from code where field_name='elevator_kind'"; -$elevator_kind_opt = DB::result($sql); -#4.付款方式 -$sql = "select code_name value ,content label from code where field_name='payment_kind'"; -$payment_kind_opt = DB::result($sql); -#5.契約性質 -$sql = "select code_name value ,content label from code where field_name='contract_kind'"; -$contract_kind_opt = DB::result($sql); -#6.是否贈送M1 -$is_m1_bundle_opt = [ - ['label' => '是', 'value' => 'Y'], - ['label' => '否', 'value' => 'N'] -]; -#7.機種 -$sql = "select code_name value ,content label from code where field_name='fp_kind'"; -$fp_kind_opt = DB::result($sql); -$table = 'con_maintance_examine_apply'; -#可編輯的列 -$editableColumn = [ - 'apply_key' => [ - 'label' => "評審單號", "value" => "$apply_key", "tag" => 'text', - 'attr' => [ - 'readonly=true ', - 'class' => 'form-control form-control-sm' - ] - ], - 'vol_no' => ['label' => "卷號", "value" => "", "tag" => 'text', 'attr' => ['readonly=true ', 'class' => 'form-control form-control-sm']], - 'address' => ['label' => "現場地址", "value" => "", "tag" => 'text', 'attr' => ['required', 'class' => 'form-control form-control-sm']], - 'case_name' => ['label' => "現場名稱", "value" => "", "tag" => 'text', 'attr' => ['required', 'class' => 'form-control form-control-sm']], - 'brand' => ['label' => "電梯品牌", "value" => "", "tag" => 'select', 'attr' => ['required', 'class' => 'form-control form-control-sm'], 'options' => $elevator_brand_opt], - 'num' => ['label' => "數量", "value" => "", "tag" => 'number', 'attr' => ['required', 'min=1', 'class' => 'form-control form-control-sm']], - 'salesman' => ['label' => "營業員", "value" => "", "tag" => 'text', 'attr' => ['required', 'class' => 'form-control form-control-sm']], - 'maintain_kind' => ['label' => "保養方式", "value" => "", "tag" => 'select', 'attr' => ['class' => 'form-control form-control-sm'], 'options' => $maintain_kind_opt], - 'contract_begin_date' => ['label' => "契約期限開始", "value" => "", "tag" => 'date', 'attr' => ['required', 'class' => 'date form-control form-control-sm']], - 'contract_end_date' => ['label' => "契約期限結束", "value" => "", "tag" => 'date', 'attr' => ['required', 'class' => 'date form-control form-control-sm']], - 'contract_kind' => ['label' => "契約性質", "value" => "", "tag" => 'select', 'attr' => ['class' => 'form-control form-control-sm'], 'options' => $contract_kind_opt], - 'introducer' => ['label' => "介紹人", "value" => "", "tag" => 'text', 'attr' => ['class' => 'form-control form-control-sm']], - - 'payment_kind' => ['label' => "付款方式", "value" => "", "tag" => 'select', 'attr' => ['required', 'class' => 'form-control form-control-sm'], 'options' => $payment_kind_opt], - -]; -$where = " and form_key='$form_key'"; - -$sql = "SELECT " . implode(',', array_keys($editableColumn)) . -" ,progress_remark FROM $table where 1=1 $where ORDER BY apply_key"; - -$data = []; -list($data) = DB::result($sql); - -#電梯詳細資料 -$con_maintance_examine_clear_columm = [ - 'register_code' => ['label' => "電梯註冊代碼", "value" => "", "tag" => 'text', 'attr' => ['colspan' => 2, 'name' => 'register_code[]', 'class' => 'form-control form-control-sm']], - //'elevator_brand' => ['label' => "品牌", "value" => "", "tag" => 'select', 'attr' => ['colspan' => 2, 'name' => 'elevator_brand[]', 'class' => 'form-control form-control-sm'], 'options' => $elevator_brand_opt], - 'elevator_kind' => ['label' => "電梯類型", "value" => "", "tag" => 'select', 'attr' => ['name' => 'elevator_kind[]', 'required', 'colspan' => 2, 'class' => 'form-control form-control-sm'], 'options' => $elevator_kind_opt], - 'spec' => ['label' => "規格型號", "value" => "", "tag" => 'select', 'attr' => ['colspan' => 2, 'name' => 'spec[]', 'class' => 'form-control form-control-sm'], 'options' => $fp_kind_opt], - 'weight' => ['label' => "載重(KG)", "value" => "", "tag" => 'number', 'attr' => ['name' => 'weight[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], - 'speed' => ['label' => "速度(m/min)", "value" => "", "tag" => 'number', 'attr' => ['colspan' => 2, 'name' => 'speed[]', 'min=0', 'required', 'class' => 'form-control form-control-sm']], - //'stop' => ['label' => "停數", "value" => "", "tag" => 'number', 'attr' => ['name' => 'stop[]', 'class' => 'form-control form-control-sm']], - 'floors' => ['label' => "層數", "value" => "", "tag" => 'number', 'attr' => ['name' => 'floors[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], - 'persons' => ['label' => "人乘", "value" => "", "tag" => 'number', 'attr' => ['name' => 'persons[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], - - 'maintain_times' => ['label' => "保養次數", "value" => "", "tag" => 'number', 'attr' => ['name' => 'maintain_times[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], - 'maintain_months' => ['label' => "保養月數", "value" => "", "tag" => 'number', 'attr' => ['name' => 'maintain_months[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], - 'maintain_period' => ['label' => "保養周期", "value" => "", "tag" => 'number', 'attr' => ['name' => 'maintain_period[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], - 'is_m1_bundle' => ['label' => "贈送M1", "value" => "", "tag" => 'select', 'attr' => ['name' => 'is_m1_bundle[]', 'required', 'class' => 'form-control form-control-sm'], 'options' => $is_m1_bundle_opt], - - - // 'elevator_num' => ['label' => "臺數", "value" => "", "tag" => 'number', 'attr' => ['name' => 'brand_num[]', 'class' => 'form-control form-control-sm']], - 'useful_years' => ['label' => "竣工檢查年度", "value" => "", "tag" => 'number', 'attr' => ['colspan' => 2, 'required', 'name' => 'useful_years[]', 'class' => 'form-control form-control-sm']], - 'last_check_date' => ['label' => "上次年檢日期", "value" => "", "tag" => 'date', 'attr' => ['required', 'name' => 'last_check_date[]', 'colspan' => 2, 'type' => 'date', 'class' => 'form-control form-control-sm']], - //'speed_governors_check_expense' => ['label' => "限速器校驗費", "value" => "", "tag" => 'number', 'attr' => ['colspan' => 2, 'name' => 'speed_governors_check_expense[]', 'class' => 'form-control form-control-sm']], - // 'service_expense' => ['label' => "服務費", "value" => "", "tag" => 'text', 'attr' => ['required', 'name' => 'service_expense[]', 'class' => ' form-control form-control-sm ']], - // 'commission_expense' => ['label' => "分成費(%)", "value" => "", "tag" => 'number', 'attr' => ['required', 'name' => 'commission_expense[]', 'class' => 'form-control form-control-sm']], - // 'management_expense' => ['label' => "管理費(%)", "value" => "", "tag" => 'number', 'attr' => ['required', 'name' => 'management_expense[]', 'class' => 'form-control form-control-sm']], - //'annual_survey_expense' => ['label' => "年檢費用(元)", "value" => "", "tag" => 'number', 'attr' => ['required', 'name' => 'annual_survey_expense[]', 'colspan' => 2, 'class' => 'date form-control form-control-sm ']], - //'service_expense' => ['label' => "服務費", "value" => "", "tag" => 'text', 'attr' => ['required', 'name' => 'service_expense[]', 'class' => ' form-control form-control-sm ']], - 'maintain_times' => ['label' => "保養次數", "tag" => 'number', 'attr' => ['name' => 'maintain_times[]', "value" => "1", 'min=1', 'required', 'class' => 'form-control form-control-sm']], - 'maintain_months' => ['label' => "保養月數", "tag" => 'number', 'attr' => ['name' => 'maintain_months[]', "value" => "12", 'min=12', 'required', 'class' => 'form-control form-control-sm']], - 'maintain_period' => ['label' => "保養周期", "tag" => 'number', 'attr' => ['name' => 'maintain_period[]', "value" => "1", 'min=1', 'required', 'class' => 'form-control form-control-sm']], - 'is_m1_bundle' => ['label' => "贈送M1", "value" => "", "tag" => 'select', 'attr' => ['name' => 'is_m1_bundle[]', 'required', 'class' => 'form-control form-control-sm'], 'options' => $is_m1_bundle_opt], - 'stand_price' => ['label' => "標準價格(元/月)", "value" => "", "tag" => 'text', 'attr' => ['required', "readonly", 'colspan' => 2, 'name' => 'stand_price[]', 'class' => 'form-control form-control-sm']], - 'contract_price' => ['label' => "契約報價(元/月)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, 'name' => 'contract_price[]', 'class' => 'form-control form-control-sm']], - 'sold_price' => ['label' => "契約成交價(元/月)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, 'name' => 'sold_price[]', 'class' => 'form-control form-control-sm']], - - - 'sold_price' => ['label' => "契約成交價C(元/月)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, 'name' => 'sold_price[]', 'class' => 'form-control form-control-sm']], - 'mi_cost' => ['label' => "標準成本D(元/月)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, 'name' => 'mi_cost[]', 'class' => 'form-control form-control-sm']], - 'discount' => ['label' => "折扣率E(%)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, 'name' => 'mi_cost_rate[]', 'class' => 'form-control form-control-sm']], - 'gross_profit' => ['label' => "毛利率F(%)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, 'name' => 'gross_profit[]', 'class' => 'form-control form-control-sm']], - -]; -$con_maintance_examine_clear = DB::result("SELECT register_code, - f_return_content('elevator_brand',elevator_brand) elevator_brand, - f_return_content('maintain_elevator_kind',elevator_kind) elevator_kind, - elevator_kind con_elevator_kind, - spec, - weight, - speed, - floors, - persons, - maintain_times, - maintain_months, - maintain_period, - is_m1_bundle, - - useful_years, - last_check_date, - speed_governors_check_expense, - service_expense, - - stand_price, - contract_price, - sold_price, - 0 mi_cost , - 0 discount, - 0 gross_profit - FROM - con_maintance_examine_clear - WHERE - 1 = 1 - AND apply_key='" . $data['apply_key'] . "' and cmstatus='Y'"); - -#總臺數 -$count = count($con_maintance_examine_clear); -$total_sold_price = 0; -#總成交價 -#總標準價格 -$total_stand_price = 0; -#總標準成本 -foreach ($con_maintance_examine_clear as $val) { - $total_sold_price += $val['sold_price']; - $total_stand_price += $val['stand_price']; -} -$total_discount_rate = $total_sold_price == 0 ? 0 - : (100*round($total_sold_price / $total_stand_price, 4)) . "%"; - -$wf->setFormData(['discount' => substr($total_discount_rate, 0, -1)]); -$assigner = $wf->getAssignerList(); -$assign_status = $wf->getAssignStatus($assigner); - - -function base_url($url) -{ - return "https://www.masada.com.tw/static/" . $url; -} -function get_sequnece_no($seq_name = '', $p_yyyymm = '') -{ - - if (empty($p_yyyymm) || empty($seq_name)) return null; - #當前年月 - //echo "select yyyymm from sequence where seq_name='$seq_name' "; - list($yyyymm, $prefix) = DB::fields("select yyyymm ,prefix from sequence where seq_name='$seq_name' "); - if ($p_yyyymm != $yyyymm) { - DB::query("update sequence set yyyymm='$p_yyyymm' , current_val='10000' where seq_name='$seq_name' "); - } - // echo "SELECT concat( $prefix,,substring(nextval('$seq_name'),2)) seq_no "; - list($seq_no) = DB::fields("SELECT concat( '$prefix','$p_yyyymm',substring(nextval('$seq_name'),2)) seq_no "); - - - return $seq_no; -} - - -?> - - - - - - - - - - - - - - - - - - - - - - -
- 流程: - - - -
- -
- -
-
- - - ' /> - - - - -
-
-
-

保養契約價格審核單

-
-
- -
-
- 契約信息 -
-
- - "; - foreach ($editableColumn as $key => $val) { - $j = (($i++) % 4); - $fieldVal = empty($data) ? "" : $data[$key]; - - $_input = $val['tag'] == 'select' ? - FormHelper::select("$key", $val['options'], $fieldVal, $val['attr']) : - FormHelper::tag("label", $val['attr'], $fieldVal); - - //""; - if ($i != 1 && $j == 0) { - echo " -
-
- "; - } - echo "
- " . $val['label'] . " -
-
- $_input -
- "; - } - echo "
"; - - ?> - -
-
- 洽商進度 -
-
- - -
-
-
-
- 電梯詳細資料 -
- - - - - - empty($val['attr']['colspan']) - ? 1 : $val['attr']['colspan']], $val['label']); - - if ((++$j % 14) == 0) { - // if ($j == 12) echo ""; - - - echo ""; - } - } - - ?> - - - - - $val) { - $j = 0; - - $cmecRow = " "; - - foreach ($con_maintance_examine_clear_columm as $col => $col_def) { - $fieldVal = empty($val) ? "" : $val[$col]; - if ($col == 'mi_cost') { - $param = [ - 'elevator_type' => $val['con_elevator_kind'], - 'floors' => $val['floors'], - 'speed' => $val['speed'], - 'persons' => $val['persons'], - 'weight' => $val['weight'], - 'maintain_times' => $val['maintain_times'], - 'maintain_months' => $val['maintain_months'], - 'maintain_kind' => $data['maintain_kind'], - 'maintain_period' => $val['maintain_period'], - 'is_m1_bundle' => $val['is_m1_bundle'], - ]; - $mic = new MICalculator(); - $res = $mic->cal($param); - #MI報價 - $con_maintance_examine_clear[$key]['mi_cost'] = $fieldVal = ($res['status'] - == 'ok' ? $res['price'] : $res['message']); - $con_maintance_examine_clear[$key]['gross_profit'] = $val['gross_profit'] = "/"; //$fieldVal==0?0: (round(($val['sold_price'] - $val['mi_cost']) / $fieldVal, 2) * 100) . "%" - #扣率 - $val['discount'] = (100*round($val['sold_price'] / $val['stand_price'], 4)) . "%"; - } - - $_input = FormHelper::tag("label", ['colspan' => empty($col_def['attr']['colspan']) ? 1 - : $col_def['attr']['colspan']], $fieldVal); - $cmecRow .= ""; - - $cmecRow = (++$j % 14 == 0) ? $cmecRow . "" : $cmecRow; - } - $tr_class = $tr_class == 'odd' ? "even" : "odd"; - echo $cmecRow . ""; - } - ?> - - - - - - - -
操作
$_input
-
- - - - - -
-
- -
- -
-
- 簽核意見 -
- -
- -
-
-
-
- 簽核狀態 -
-
- -
- -
- 下位簽核者 -
-
- - -
-
- -
- -
-
-
- -
-
-
- - -
- -
- - - - ' . $wf->getNodeDescriptions($as['flow_code']) . ' -
'; - $tmp_code = $as['flow_code']; - ?> -
"> -
- - - - -   - " . $as['position_name'] . " "; ?> - - - - - - -   - 申請人 "; ?> - 退回"; ?> - 會簽"; ?> - - - - 簽核於: - - - -
-
- -
- -
- -
- - - -
-
- -
-
-
- - - - - - - - +vol_no; +require_once './FormHelper.php'; +require_once '../cont/MICalculator.php'; + +require_once './wf_common.php'; +$flow = new Flow($form_key); +// 當前節點簽核開始 + +$wf = new WorkFlow($flow->system_id, $flow->flow_id, $flow->form_id, $form_key); +#獲取簽核意見 +$assign_opinions = Assign::get_records($form_key); +$flowName = $wf->getFlowName(); + +//表單數據 +#客戶表 +#1.電梯品牌選項 +$sql = "select code_name value ,content label from code where field_name='elevator_brand'"; +$elevator_brand_opt = DB::result($sql); +#2.保養方式 +$sql = "select code_name value ,content label from code where field_name='maintain_kind'"; +$maintain_kind_opt = DB::result($sql); +#3.電梯類型 +$sql = "select code_name value ,content label from code where field_name='elevator_kind'"; +$elevator_kind_opt = DB::result($sql); +#4.付款方式 +$sql = "select code_name value ,content label from code where field_name='payment_kind'"; +$payment_kind_opt = DB::result($sql); +#5.契約性質 +$sql = "select code_name value ,content label from code where field_name='contract_kind'"; +$contract_kind_opt = DB::result($sql); +#6.是否贈送M1 +$is_m1_bundle_opt = [ + ['label' => '是', 'value' => 'Y'], + ['label' => '否', 'value' => 'N'] +]; +#7.機種 +$sql = "select code_name value ,content label from code where field_name='fp_kind'"; +$fp_kind_opt = DB::result($sql); +$table = 'con_maintance_examine_apply'; +#可編輯的列 +$editableColumn = [ + 'apply_key' => [ + 'label' => "評審單號", "value" => "$apply_key", "tag" => 'text', + 'attr' => [ + 'readonly=true ', + 'class' => 'form-control form-control-sm' + ] + ], + 'vol_no' => ['label' => "卷號", "value" => "", "tag" => 'text', 'attr' => ['readonly=true ', 'class' => 'form-control form-control-sm']], + 'address' => ['label' => "現場地址", "value" => "", "tag" => 'text', 'attr' => ['required', 'class' => 'form-control form-control-sm']], + 'case_name' => ['label' => "現場名稱", "value" => "", "tag" => 'text', 'attr' => ['required', 'class' => 'form-control form-control-sm']], + 'brand' => ['label' => "電梯品牌", "value" => "", "tag" => 'select', 'attr' => ['required', 'class' => 'form-control form-control-sm'], 'options' => $elevator_brand_opt], + 'num' => ['label' => "數量", "value" => "", "tag" => 'number', 'attr' => ['required', 'min=1', 'class' => 'form-control form-control-sm']], + 'salesman' => ['label' => "營業員", "value" => "", "tag" => 'text', 'attr' => ['required', 'class' => 'form-control form-control-sm']], + 'maintain_kind' => ['label' => "保養方式", "value" => "", "tag" => 'select', 'attr' => ['class' => 'form-control form-control-sm'], 'options' => $maintain_kind_opt], + 'contract_begin_date' => ['label' => "契約期限開始", "value" => "", "tag" => 'date', 'attr' => ['required', 'class' => 'date form-control form-control-sm']], + 'contract_end_date' => ['label' => "契約期限結束", "value" => "", "tag" => 'date', 'attr' => ['required', 'class' => 'date form-control form-control-sm']], + 'contract_kind' => ['label' => "契約性質", "value" => "", "tag" => 'select', 'attr' => ['class' => 'form-control form-control-sm'], 'options' => $contract_kind_opt], + 'introducer' => ['label' => "介紹人", "value" => "", "tag" => 'text', 'attr' => ['class' => 'form-control form-control-sm']], + + 'payment_kind' => ['label' => "付款方式", "value" => "", "tag" => 'select', 'attr' => ['required', 'class' => 'form-control form-control-sm'], 'options' => $payment_kind_opt], + +]; +$where = " and form_key='$form_key'"; + +$sql = "SELECT " . implode(',', array_keys($editableColumn)) . + " ,progress_remark FROM $table where 1=1 $where ORDER BY apply_key"; + +$data = []; +list($data) = DB::result($sql); + +#電梯詳細資料 +$con_maintance_examine_clear_columm = [ + 'register_code' => ['label' => "電梯註冊代碼", "value" => "", "tag" => 'text', 'attr' => ['colspan' => 2, 'name' => 'register_code[]', 'class' => 'form-control form-control-sm']], + //'elevator_brand' => ['label' => "品牌", "value" => "", "tag" => 'select', 'attr' => ['colspan' => 2, 'name' => 'elevator_brand[]', 'class' => 'form-control form-control-sm'], 'options' => $elevator_brand_opt], + 'elevator_kind' => ['label' => "電梯類型", "value" => "", "tag" => 'select', 'attr' => ['name' => 'elevator_kind[]', 'required', 'colspan' => 2, 'class' => 'form-control form-control-sm'], 'options' => $elevator_kind_opt], + 'spec' => ['label' => "規格型號", "value" => "", "tag" => 'select', 'attr' => ['colspan' => 2, 'name' => 'spec[]', 'class' => 'form-control form-control-sm'], 'options' => $fp_kind_opt], + 'weight' => ['label' => "載重(KG)", "value" => "", "tag" => 'number', 'attr' => ['name' => 'weight[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], + 'speed' => ['label' => "速度(m/min)", "value" => "", "tag" => 'number', 'attr' => ['colspan' => 2, 'name' => 'speed[]', 'min=0', 'required', 'class' => 'form-control form-control-sm']], + //'stop' => ['label' => "停數", "value" => "", "tag" => 'number', 'attr' => ['name' => 'stop[]', 'class' => 'form-control form-control-sm']], + 'floors' => ['label' => "層數", "value" => "", "tag" => 'number', 'attr' => ['name' => 'floors[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], + 'persons' => ['label' => "人乘", "value" => "", "tag" => 'number', 'attr' => ['name' => 'persons[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], + + 'maintain_times' => ['label' => "保養次數", "value" => "", "tag" => 'number', 'attr' => ['name' => 'maintain_times[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], + 'maintain_months' => ['label' => "保養月數", "value" => "", "tag" => 'number', 'attr' => ['name' => 'maintain_months[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], + 'maintain_period' => ['label' => "保養周期", "value" => "", "tag" => 'number', 'attr' => ['name' => 'maintain_period[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], + 'is_m1_bundle' => ['label' => "贈送M1", "value" => "", "tag" => 'select', 'attr' => ['name' => 'is_m1_bundle[]', 'required', 'class' => 'form-control form-control-sm'], 'options' => $is_m1_bundle_opt], + + + // 'elevator_num' => ['label' => "臺數", "value" => "", "tag" => 'number', 'attr' => ['name' => 'brand_num[]', 'class' => 'form-control form-control-sm']], + 'useful_years' => ['label' => "竣工檢查年度", "value" => "", "tag" => 'number', 'attr' => ['colspan' => 2, 'required', 'name' => 'useful_years[]', 'class' => 'form-control form-control-sm']], + 'last_check_date' => ['label' => "上次年檢日期", "value" => "", "tag" => 'date', 'attr' => ['required', 'name' => 'last_check_date[]', 'colspan' => 2, 'type' => 'date', 'class' => 'form-control form-control-sm']], + //'speed_governors_check_expense' => ['label' => "限速器校驗費", "value" => "", "tag" => 'number', 'attr' => ['colspan' => 2, 'name' => 'speed_governors_check_expense[]', 'class' => 'form-control form-control-sm']], + // 'service_expense' => ['label' => "服務費", "value" => "", "tag" => 'text', 'attr' => ['required', 'name' => 'service_expense[]', 'class' => ' form-control form-control-sm ']], + // 'commission_expense' => ['label' => "分成費(%)", "value" => "", "tag" => 'number', 'attr' => ['required', 'name' => 'commission_expense[]', 'class' => 'form-control form-control-sm']], + // 'management_expense' => ['label' => "管理費(%)", "value" => "", "tag" => 'number', 'attr' => ['required', 'name' => 'management_expense[]', 'class' => 'form-control form-control-sm']], + //'annual_survey_expense' => ['label' => "年檢費用(元)", "value" => "", "tag" => 'number', 'attr' => ['required', 'name' => 'annual_survey_expense[]', 'colspan' => 2, 'class' => 'date form-control form-control-sm ']], + //'service_expense' => ['label' => "服務費", "value" => "", "tag" => 'text', 'attr' => ['required', 'name' => 'service_expense[]', 'class' => ' form-control form-control-sm ']], + 'maintain_times' => ['label' => "保養次數", "tag" => 'number', 'attr' => ['name' => 'maintain_times[]', "value" => "1", 'min=1', 'required', 'class' => 'form-control form-control-sm']], + 'maintain_months' => ['label' => "保養月數", "tag" => 'number', 'attr' => ['name' => 'maintain_months[]', "value" => "12", 'min=12', 'required', 'class' => 'form-control form-control-sm']], + 'maintain_period' => ['label' => "保養周期", "tag" => 'number', 'attr' => ['name' => 'maintain_period[]', "value" => "1", 'min=1', 'required', 'class' => 'form-control form-control-sm']], + 'is_m1_bundle' => ['label' => "贈送M1", "value" => "", "tag" => 'select', 'attr' => ['name' => 'is_m1_bundle[]', 'required', 'class' => 'form-control form-control-sm'], 'options' => $is_m1_bundle_opt], + 'stand_price' => ['label' => "標準價格(元/月)", "value" => "", "tag" => 'text', 'attr' => ['required', "readonly", 'colspan' => 2, 'name' => 'stand_price[]', 'class' => 'form-control form-control-sm']], + 'contract_price' => ['label' => "契約報價(元/月)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, 'name' => 'contract_price[]', 'class' => 'form-control form-control-sm']], + 'sold_price' => ['label' => "契約成交價(元/月)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, 'name' => 'sold_price[]', 'class' => 'form-control form-control-sm']], + + + 'sold_price' => ['label' => "契約成交價C(元/月)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, 'name' => 'sold_price[]', 'class' => 'form-control form-control-sm']], + 'mi_cost' => ['label' => "標準成本D(元/月)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, 'name' => 'mi_cost[]', 'class' => 'form-control form-control-sm']], + 'discount' => ['label' => "折扣率E(%)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, 'name' => 'mi_cost_rate[]', 'class' => 'form-control form-control-sm']], + 'gross_profit' => ['label' => "毛利率F(%)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, 'name' => 'gross_profit[]', 'class' => 'form-control form-control-sm']], + +]; +$con_maintance_examine_clear = DB::result("SELECT register_code, + f_return_content('elevator_brand',elevator_brand) elevator_brand, + f_return_content('maintain_elevator_kind',elevator_kind) elevator_kind, + elevator_kind con_elevator_kind, + spec, + weight, + speed, + floors, + persons, + maintain_times, + maintain_months, + maintain_period, + is_m1_bundle, + + useful_years, + last_check_date, + speed_governors_check_expense, + service_expense, + + stand_price, + contract_price, + sold_price, + 0 mi_cost , + 0 discount, + 0 gross_profit + FROM + con_maintance_examine_clear + WHERE + 1 = 1 + AND apply_key='" . $data['apply_key'] . "' and cmstatus='Y'"); + +#總臺數 +$count = count($con_maintance_examine_clear); +$total_sold_price = 0; +#總成交價 +#總標準價格 +$total_stand_price = 0; +#總標準成本 +foreach ($con_maintance_examine_clear as $val) { + $total_sold_price += $val['sold_price']; + $total_stand_price += $val['stand_price']; +} +$total_discount_rate = $total_sold_price == 0 ? 0 + : (100 * round($total_sold_price / $total_stand_price, 4)) . "%"; + +$wf->setFormData(['discount' => substr($total_discount_rate, 0, -1)]); +$assigner = $wf->getAssignerList(); +$assign_status = $wf->getAssignStatus($assigner); + + +function base_url($url) +{ + return "https://www.masada.com.tw/static/" . $url; +} +function get_sequnece_no($seq_name = '', $p_yyyymm = '') +{ + + if (empty($p_yyyymm) || empty($seq_name)) return null; + #當前年月 + //echo "select yyyymm from sequence where seq_name='$seq_name' "; + list($yyyymm, $prefix) = DB::fields("select yyyymm ,prefix from sequence where seq_name='$seq_name' "); + if ($p_yyyymm != $yyyymm) { + DB::query("update sequence set yyyymm='$p_yyyymm' , current_val='10000' where seq_name='$seq_name' "); + } + // echo "SELECT concat( $prefix,,substring(nextval('$seq_name'),2)) seq_no "; + list($seq_no) = DB::fields("SELECT concat( '$prefix','$p_yyyymm',substring(nextval('$seq_name'),2)) seq_no "); + + + return $seq_no; +} + + +?> + + + + + + + + + + + + + + + + + + + + + + +
+ 流程: + + + +
+ +
+ +
+
+ + + ' /> + + + + +
+
+
+

保養契約價格審核單

+
+
+ +
+
+ 契約信息 +
+
+ + "; + foreach ($editableColumn as $key => $val) { + $j = (($i++) % 4); + $fieldVal = empty($data) ? "" : $data[$key]; + + $_input = $val['tag'] == 'select' ? + FormHelper::select("$key", $val['options'], $fieldVal, $val['attr']) : + FormHelper::tag("label", $val['attr'], $fieldVal); + + //""; + if ($i != 1 && $j == 0) { + echo " +
+
+ "; + } + echo "
+ " . $val['label'] . " +
+
+ $_input +
+ "; + } + echo "
"; + + ?> + +
+
+ 洽商進度 +
+
+ + +
+
+
+
+ 電梯詳細資料 +
+ + + + + + empty($val['attr']['colspan']) + ? 1 : $val['attr']['colspan']], $val['label']); + + if ((++$j % 14) == 0) { + // if ($j == 12) echo ""; + + + echo ""; + } + } + + ?> + + + + + $val) { + $j = 0; + + $cmecRow = " "; + + foreach ($con_maintance_examine_clear_columm as $col => $col_def) { + $fieldVal = empty($val) ? "" : $val[$col]; + if ($col == 'mi_cost') { + $param = [ + 'elevator_type' => $val['con_elevator_kind'], + 'floors' => $val['floors'], + 'speed' => $val['speed'], + 'persons' => $val['persons'], + 'weight' => $val['weight'], + 'maintain_times' => $val['maintain_times'], + 'maintain_months' => $val['maintain_months'], + 'maintain_kind' => $data['maintain_kind'], + 'maintain_period' => $val['maintain_period'], + 'is_m1_bundle' => $val['is_m1_bundle'], + ]; + $mic = new MICalculator(); + $res = $mic->cal($param); + #MI報價 + $con_maintance_examine_clear[$key]['mi_cost'] = $fieldVal = ($res['status'] + == 'ok' ? $res['price'] : $res['message']); + $con_maintance_examine_clear[$key]['gross_profit'] = $val['gross_profit'] = "/"; //$fieldVal==0?0: (round(($val['sold_price'] - $val['mi_cost']) / $fieldVal, 2) * 100) . "%" + #扣率 + $val['discount'] = (100 * round($val['sold_price'] / $val['stand_price'], 4)) . "%"; + } + + $_input = FormHelper::tag("label", ['colspan' => empty($col_def['attr']['colspan']) ? 1 + : $col_def['attr']['colspan']], $fieldVal); + $cmecRow .= ""; + + $cmecRow = (++$j % 14 == 0) ? $cmecRow . "" : $cmecRow; + } + $tr_class = $tr_class == 'odd' ? "even" : "odd"; + echo $cmecRow . ""; + } + ?> + + + + + + + +
操作
$_input
+
+ + + + + +
+
+ +
+ +
+
+ 簽核意見 +
+ +
+ +
+
+
+
+ 簽核狀態 +
+
+ +
+ +
+ 下位簽核者 +
+
+ + +
+
+ +
+ +
+
+
+ +
+
+
+ + +
+ +
+ + + + ' . $wf->getNodeDescriptions($as['flow_code']) . ' +
'; + $tmp_code = $as['flow_code']; + ?> +
"> +
+ + + + +   + " . $as['position_name'] . " "; ?> + + + + + + +   + 申請人 "; ?> + 退回"; ?> + 會簽"; ?> + + + + 簽核於: + + + +
+
+ +
+ +
+ +
+ + + +
+
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/wms/cont/sign_list.php b/wms/cont/sign_list.php index d08da664..bf792131 100644 --- a/wms/cont/sign_list.php +++ b/wms/cont/sign_list.php @@ -70,8 +70,11 @@ form_key, f_return_content('payment_kind',payment_kind ) payment_kind FROM $table where 1=1 $where ORDER BY vol_no"; - +// echo $sql; $data = mysqli_query($link, $sql); +// echo '
';
+// print_r($data);
+// echo '
'; ?>
- +
- +
@@ -101,17 +103,17 @@ if ($data) :
- +
"; foreach ($editableColumn as $key => $val) { - - echo ""; + + echo ""; } - echo ""; + echo ""; // echo ""; echo ""; ?> @@ -121,22 +123,22 @@ if ($data) : $val) { - if ( $key =='apply_key') { - echo ""; + if ($key == 'apply_key') { + echo ""; } elseif ($key == 'brand') { - echo ""; + echo ""; } else { echo ""; } } - //list($signer)=DB::fields("); -//echo " select f_return_name(current_assigner) signer from subflow where form_key='". $row['form_key'] ."'"; ". (is_array($row['form_key'])?'': $row['form_key']) ." - list($signer)=mysqli_fetch_array(mysqli_query($link, "select max(f_return_name(current_assigner) ) signer from subflow where form_key='". $row['form_key'] ."'" )); + //list($signer)=DB::fields("); + //echo " select f_return_name(current_assigner) signer from subflow where form_key='". $row['form_key'] ."'"; ". (is_array($row['form_key'])?'': $row['form_key']) ." + list($signer) = mysqli_fetch_array(mysqli_query($link, "select max(f_return_name(current_assigner) ) signer from subflow where form_key='" . $row['form_key'] . "'")); + + echo ""; - echo ""; - ?> - + diff --git a/wms/cont/submit.php b/wms/cont/submit.php index 82838567..ed2766af 100644 --- a/wms/cont/submit.php +++ b/wms/cont/submit.php @@ -1,78 +1,79 @@ -"; - echo "alert('請確認電梯資料或未選擇下位簽核者!');"; - echo "history.go(-1);"; - echo ""; - exit; -} - -//更新表单ConMaintanceExamineApplyModel -$cmea = new ConMaintanceExamineApplyModel(); -$apply_key=$request['apply_key']; -$cmea->update(['apply_key', $apply_key], array_diff_key($request, ['apply_key' => ''])); -//更新电梯列表 -if (!empty($request["reg_del"])) { - $register_code_del_arr = explode(",", rtrim($request["reg_del"], ",")); - foreach ($register_code_del_arr as $val) { - $sql = "update con_maintance_examine_clear set cmstatus = 'D' where apply_key = '$apply_key' and register_code = '$val' and cmstatus <> 'D'"; - DB::query($sql); - } -} -if (!empty($request['register_code']) && count($request['register_code']) > 0) { - $cmec = new ConMaintanceExamineClearModel(); - for ($i = 0; $i < count($request['register_code']); $i++) { - $data = [ - 'apply_key' => $request['apply_key'] - ]; - $cols = array_diff($cmec->fillable, ['apply_key']); - foreach ($cols as $col) { - $data[$col] = empty($request[$col][$i]) ? '' : $request[$col][$i]; - if ($col=="annual_survey_expense") $data[$col] = '0.00'; - } - $cmec->create($data); - } -} - -//var_dump($_POST); -//var_dump($_GET); - -if ($tosign) { - #流程开始,var_dump($request); - $flow = new Flow($request['form_key']); - // 当前节点签核开始 - $wf = new WorkFlow($flow->system_id, $flow->flow_id, $flow->form_id, $request['form_key']); - $wf->setFormData($request); - $wf->submit($request['next_users'], $request['assign_status'], $request['assign_opinion']); - //当前节点签核结束 - $responses['flowName'] = $wf->getFlowName(); - $responses['form_key'] = $request['form_key']; - //var_dump($request); - #結案發通知給營業員 - if ($request['assign_status'] == 'F4') { - - list($salesman, $case_name ) = DB::fields("select salesman ,case_name from con_maintance_examine_apply where apply_key='" . $apply_key. "' "); - $ins_notice_sql = "INSERT INTO `notice` ( `kind`,`title`, `content`, `permission`) - VALUES ( '1', '契約價審單結案通知(" .$case_name . ")', '契約價審單結案通知(" . $case_name . ")', ' $salesman')"; - DB::query($ins_notice_sql); - // echo $ins_notice_sql; - } -} -echo ""; +"; + echo "alert('請確認電梯資料或未選擇下位簽核者!');"; + echo "history.go(-1);"; + echo ""; + exit; +} + +//更新表单ConMaintanceExamineApplyModel +$cmea = new ConMaintanceExamineApplyModel(); +$apply_key = $request['apply_key']; +$cmea->update(['apply_key', $apply_key], array_diff_key($request, ['apply_key' => ''])); +//更新电梯列表 +if (!empty($request["reg_del"])) { + $register_code_del_arr = explode(",", rtrim($request["reg_del"], ",")); + foreach ($register_code_del_arr as $val) { + $sql = "UPDATE con_maintance_examine_clear SET cmstatus = 'D' WHERE apply_key = '$apply_key' AND register_code = '$val' AND cmstatus <> 'D'"; + DB::query($sql); + } +} +if (!empty($request['register_code']) && count($request['register_code']) > 0) { + $cmec = new ConMaintanceExamineClearModel(); + for ($i = 0; $i < count($request['register_code']); $i++) { + $data = [ + 'apply_key' => $request['apply_key'] + ]; + $cols = array_diff($cmec->fillable, ['apply_key']); + foreach ($cols as $col) { + $data[$col] = empty($request[$col][$i]) ? '' : $request[$col][$i]; + if ($col == "annual_survey_expense") $data[$col] = '0.00'; + } + $cmec->create($data); + } +} + +//var_dump($_POST); +//var_dump($_GET); + +if ($tosign) { + #流程开始,var_dump($request); + $flow = new Flow($request['form_key']); + // 当前节点签核开始 + $wf = new WorkFlow($flow->system_id, $flow->flow_id, $flow->form_id, $request['form_key']); + $wf->setFormData($request); + $wf->submit($request['next_users'], $request['assign_status'], $request['assign_opinion']); + //当前节点签核结束 + $responses['flowName'] = $wf->getFlowName(); + $responses['form_key'] = $request['form_key']; + //var_dump($request); + #結案發通知給營業員 + if ($request['assign_status'] == 'F4') { + + list($salesman, $case_name) = DB::fields("select salesman ,case_name from con_maintance_examine_apply where apply_key='" . $apply_key . "' "); + $ins_notice_sql = "INSERT INTO `notice` ( `kind`,`title`, `content`, `permission`) + VALUES ( '1', '契約價審單結案通知(" . $case_name . ")', '契約價審單結案通知(" . $case_name . ")', ' $salesman')"; + DB::query($ins_notice_sql); + // echo $ins_notice_sql; + } +} +echo ""; diff --git a/wms/contract-create.php b/wms/contract-create.php index b1241568..3e28f217 100644 --- a/wms/contract-create.php +++ b/wms/contract-create.php @@ -1,126 +1,126 @@ - - -
- - Please fill up the required field!

"; - } else { - echo "

Record has added successfully

"; - } - } - */ - ?> - - - - " enctype="multipart/form-data"> - - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
-
- -
- -
-
- -
- -
- - -

-
- -
- - -

-
- -
-
- -
- - -
- - + + +
+ + Please fill up the required field!

"; + } else { + echo "

Record has added successfully

"; + } + } + */ + ?> + + + +
" enctype="multipart/form-data"> + + +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+
+ +
+ +
+
+ +
+ +
+ + +

+
+ +
+ + +

+
+ +
+
+ +
+ + +
+ + diff --git a/wms/contract-delete.php b/wms/contract-delete.php index 10371003..a8884d8b 100644 --- a/wms/contract-delete.php +++ b/wms/contract-delete.php @@ -1,12 +1,12 @@ - \ No newline at end of file diff --git a/wms/contract-edit.php b/wms/contract-edit.php index 9df494e6..c643d2a6 100644 --- a/wms/contract-edit.php +++ b/wms/contract-edit.php @@ -1,142 +1,142 @@ -getMessage(), "\n"; - } -*/ - foreach($data as $data) : -?> - -
-
- - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
-
- -
- - -
- - +getMessage(), "\n"; + } +*/ + foreach($data as $data) : +?> + +
+
+ + +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+
+ +
+ + +
+ + diff --git a/wms/contract-index.php b/wms/contract-index.php index 8f510483..bde2374d 100644 --- a/wms/contract-index.php +++ b/wms/contract-index.php @@ -1,162 +1,162 @@ - - - - -

- - - -

-Please fill up the required field!

"; - } else { - header("Location:contract-index.php"); - } - } - -?> - - - -
-
".$val['label']."" . $val['label'] . "是否結案是否結案刪除
" . $row[$key] . " " . $row[$key] . "" . (!empty($row[$key])?$elevator_brand_arr[$row[$key]]:"") . "" . (!empty($row[$key]) ? $elevator_brand_arr[$row[$key]] : "") . "" . $row[$key] . "" . (empty($signer) ? "結案" : "N") . "" .(empty($signer)?"結案":"N") . "
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
項次合約類型合約號公司名稱統一編號地址電話立約人客戶維護帳號業務聯繫人業務聯繫人地址業務聯繫人電話業務聯繫人郵件地址契約人員工號合約起始日合約終止日建檔人建檔時間修改
-

- - - -

-
- - -There is no record!"; -endif; - -#代表結束連線 -mysqli_close($link); - -include "footer.php"; - -?> + + + + +

+ + + +

+Please fill up the required field!

"; + } else { + header("Location:contract-index.php"); + } + } + +?> + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
項次合約類型合約號公司名稱統一編號地址電話立約人客戶維護帳號業務聯繫人業務聯繫人地址業務聯繫人電話業務聯繫人郵件地址契約人員工號合約起始日合約終止日建檔人建檔時間修改
+

+ + + +

+
+
+ +There is no record!"; +endif; + +#代表結束連線 +mysqli_close($link); + +include "footer.php"; + +?> diff --git a/wms/contract-record-submit.php b/wms/contract-record-submit.php index 7b6ea47e..724e430a 100644 --- a/wms/contract-record-submit.php +++ b/wms/contract-record-submit.php @@ -1,61 +1,61 @@ - 0) { - echo ""; - } elseif ($affected == 0) { - echo ""; - } else { - echo "{$db_query} 語法執行失敗,錯誤訊息SSS: " . mysqli_error($link); - } -} -?> + 0) { + echo ""; + } elseif ($affected == 0) { + echo ""; + } else { + echo "{$db_query} 語法執行失敗,錯誤訊息SSS: " . mysqli_error($link); + } +} +?> diff --git a/wms/contract-record-update.php b/wms/contract-record-update.php index fabd375f..443f06ee 100644 --- a/wms/contract-record-update.php +++ b/wms/contract-record-update.php @@ -1,50 +1,50 @@ - 0) { - echo ""; - } elseif ($affected == 0) { - echo ""; - } else { - echo "{$db_query} 語法執行失敗,錯誤訊息SSS: " . mysqli_error($link); - } -} + 0) { + echo ""; + } elseif ($affected == 0) { + echo ""; + } else { + echo "{$db_query} 語法執行失敗,錯誤訊息SSS: " . mysqli_error($link); + } +} ?> \ No newline at end of file diff --git a/wms/contract-repair/api/deleteNewContractData.php b/wms/contract-repair/api/deleteNewContractData.php new file mode 100644 index 00000000..d2d7b6b7 --- /dev/null +++ b/wms/contract-repair/api/deleteNewContractData.php @@ -0,0 +1,34 @@ +prepare($sql); + $stmt->bindParam(":id", $id); + $stmt->bindParam(":del", $del); + $stmt->bindParam(":user_id", $user_id); + $stmt->bindParam(":date", $date); + $stmt->execute(); + header("HTTP/1.1 204 NO Content"); + } catch (PDOException $e) { + die("ERROR!!!" . $e->getMessage()); + } +} +if (isset($_GET['contractid']) && $_GET['contractid'] != "") { + try { + $id = $_GET["contractid"]; + $sql_str = "DELETE FROM contract_m_signed_back WHERE id = :contractid"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(":contractid", $id); + $stmt->execute(); + header("HTTP/1.1 204 No Content"); + } catch (PDOException $e) { + die("ERROR!!!: " . $e->getMessage()); + } +} diff --git a/wms/contract-repair/api/getComboNo.php b/wms/contract-repair/api/getComboNo.php new file mode 100644 index 00000000..c258be15 --- /dev/null +++ b/wms/contract-repair/api/getComboNo.php @@ -0,0 +1,59 @@ +'BW002', + 'month'=>'EM002', + 'quarter'=>'EQ002', + 'half'=>'HY002', + 'year'=>'EY002' + ]; + private $bwarr = [ + 'week','month','week','month','week','quarter', + 'week','month','week','month','week','half', + 'week','month','week','month','week','quarter', + 'week','month','week','month','week','year' + ]; + private $emarr = [ + 'month','month','quarter','month','month','half', + 'month','month','quarter','month','month','year' + ]; + private $combo; + private $startdate; + private $enddate; + public function __construct($combo, $startdate, $enddate){ + $this->combo = $combo; + $this->startdate = $startdate; + $this->enddate = $enddate; + } + public function getComboNo(){ + $comboarr = (array) $this->combo === 'bw' ? $this->bwarr : $this->emarr; + + $startdate = new DateTime($this->startdate); + $enddate = new DateTime($this->enddate); + + $interval = date_diff($startdate, $enddate); + + $months = $interval->y * 12 + $interval->m; + $months = $this->combo === 'bw' ? $months*2 : $months; + + $newarr = []; + $idx = 0; + $ori_first_month = date('m', strtotime($this->startdate)); + $first_day = date('Y-m-d', strtotime($this->startdate. ' + 3 days')); + $new_first_month = date('m', strtotime($first_day)); + if($ori_first_month != $new_first_month){ + $first_day = date('Y-m-t', strtotime($this->startdate)); + } + $scheduleDate = new DateTime($first_day); + for ($i = 0; $i < $months; $i++){ + $newarr[] = [$this->comboarr[$comboarr[$idx]], $scheduleDate->format("Y-m-d")]; + $idx ++; + $scheduleDate = $startdate->modify("+1 month"); + if($idx >= count($comboarr)){ + $idx = 0; + } + } + return json_encode($newarr); + } +} \ No newline at end of file diff --git a/wms/contract-repair/api/getContractData.php b/wms/contract-repair/api/getContractData.php new file mode 100644 index 00000000..aceedd0a --- /dev/null +++ b/wms/contract-repair/api/getContractData.php @@ -0,0 +1,122 @@ +prepare($sql_str); + $stmt->bindParam(':vol_no', $contractno); + $stmt->execute(); + $contract = $stmt->fetch(PDO::FETCH_ASSOC); + + if (empty($contract)) { + echo false; + exit; + } + $apply_key = $contract['apply_key']; + $sql_str = "SELECT * FROM con_maintance_examine_clear WHERE apply_key = :apply_key"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':apply_key', $apply_key); + $stmt->execute(); + $elevators = $stmt->fetchAll(PDO::FETCH_ASSOC); + $count = COUNT($elevators); + $contract['elevators'] = $elevators; + $contract['num'] = $count; + + $contractResponse = json_encode($contract); + + // 設定回應標頭為 JSON + header('Content-Type: application/json'); + + // 將 JSON 回應返回給客戶端 + echo $contractResponse; + // echo json_encode($contractResponse); + } catch (PDOException $e) { + die("ERROR!!!: " . $e->getMessage()); + } +} + +if (isset($_GET['contractno']) && $_GET['contractno'] != '' && isset($_GET['contracttype']) && $_GET['contracttype'] == 'm') { + try { + $contractno = $_GET['contractno']; + $sql_str = "SELECT * FROM hope_elevator_customer WHERE vol_no = :vol_no ORDER BY created_at DESC"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':vol_no', $contractno); + $stmt->execute(); + $contract = $stmt->fetch(PDO::FETCH_ASSOC); + $contractResponse = json_encode($contract); + + // 設定回應標頭為 JSON + header('Content-Type: application/json'); + + // 將 JSON 回應返回給客戶端 + echo $contractResponse; + } catch (PDOException $e) { + die("ERROR!!!: " . $e->getMessage()); + } +} +////////////////////////////// +//// 合約簽回(修理) +//// +//// 製作人:梓誠 +/// 時間 : +////////////////////////////// +if (isset($_GET['repair_no']) && $_GET['repair_no'] != '' && isset($_GET['contracttype']) && $_GET['contracttype'] == 'r') { + try { + $repair_no = $_GET['repair_no']; + $fail_arr = []; + $d_status = '1'; + // 判斷單號是否在合約簽核已建立 + $sql = "SELECT COUNT(*) AS num FROM contract_r_signed_back WHERE repair_no = :repair_no AND delete_status = :d_status "; + $stmt = $conn->prepare($sql); + $stmt->bindParam(":repair_no", $repair_no); + $stmt->bindParam(":d_status", $d_status); + $stmt->execute(); + $result = $stmt->fetch(PDO::FETCH_ASSOC); + $count = $result['num']; + if ($count >= 1) { + $fail_arr[] = '合約單號重複,請至契約管理(修理)查看。'; + header("HTTP/1.1 422 Unprocessable Entity"); + echo json_encode($fail_arr); + exit(); + } + // 判斷單號是否在價格審查中以建立。 + $sql = "SELECT COUNT(*) AS num FROM pricereview_repair_main WHERE repair_no = :repair_no"; + $stmt = $conn->prepare($sql); + $stmt->bindParam(":repair_no", $repair_no); + $stmt->execute(); + $result2 = $stmt->fetch(PDO::FETCH_ASSOC); + $count2 = $result2['num']; + if ($count2 == 0) { + $fail_arr[] = '找不到單號,請再確認。'; + header("HTTP/1.1 422 Unprocessable Entity"); + echo json_encode($fail_arr); + exit(); + } + + + // $contractno = $_GET['contractno']; + $sql = "SELECT a.*,b.name,b.accountid + FROM pricereview_repair_main AS a + LEFT JOIN account AS b + ON a.repairerid = b.accountid + WHERE a.repair_no = :repair_no "; + $stmt = $conn->prepare($sql); + + $stmt->bindParam(':repair_no', $repair_no); + $stmt->execute(); + $contract = $stmt->fetch(PDO::FETCH_ASSOC); + $contractResponse = json_encode($contract); + + // 設定回應標頭為 JSON + header('Content-Type : appliction/json'); + + // 將 JSON 回應給客戶端 + echo $contractResponse; + } catch (PDOException $e) { + die("ERROR!!:" . $e->getMessage()); + } +} diff --git a/wms/contract-repair/api/getFacilityNo.php b/wms/contract-repair/api/getFacilityNo.php new file mode 100644 index 00000000..fcf0b76f --- /dev/null +++ b/wms/contract-repair/api/getFacilityNo.php @@ -0,0 +1,518 @@ + false, + PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, + PDO::ATTR_EMULATE_PREPARES => false, + PDO::ATTR_STRINGIFY_FETCHES => false, + PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4', + ]; + $pdo = new PDO('mysql:host=' . $host . ';port=' . $dbport . ';dbname=' . $dbname . '', $dbuser, $dbpassword, $options); + $pdo->exec('SET CHARACTER SET utf8mb4'); + return $pdo; + } catch (PDOException $e) { + die("Something wrong: {$e->getMessage()}"); + } + } + + /** + * 結束資料庫連線 + */ + function endConnectionDB($pdo) + { + unset($pdo); + } + + /** + * 取得下一個新的作番 + * @param string $facility_type : M:新梯 T:汰改 B:保養 + * @param string $sale_type : M:内銷 E:外銷 T:他社维保 J:汰改 X:特殊部品 + * @param array $make_type : X:小機房 W:無機房 H:家用梯 Z:雜物梯 F:扶梯 B:部品 Q:品保對策 T:研究開發 N:設備 W:出貨現場要求購買 J:營業問題對策 Y:已出貨作番營業進行規格訂正 + * @param int $num : 號機 + * @return array $new_facility_arr + */ + function getNextFacilityNo($facility_type, $sale_type, $make_type, $num = 1) + { + $this->checkYearAndResetAllSeq(); + $Y = substr(date("Y"), 3, 1); + + switch ($facility_type) { + case "M": + $next_seq = $this->getNextFacilitySeq("mf_vol_no") + 1; + $new_facility_arr = []; + for ($start_num = 1; $start_num <= $num; $start_num++) { + $facility_no_tmp = $Y . $sale_type . $make_type[$start_num - 1] + . str_pad($next_seq, 5, "0", STR_PAD_LEFT); + array_push($new_facility_arr, $facility_no_tmp); + $next_seq++; + } + return $new_facility_arr; + case "T": + $next_seq = $this->getNextFacilitySeq("tf_vol_no"); + $new_facility_arr = []; + for ($start_num = 1; $start_num <= $num; $start_num++) { + $facility_no_tmp = $Y . $sale_type . $make_type[$start_num - 1] + . str_pad($next_seq + 1, 3, "0", STR_PAD_LEFT) + . str_pad($start_num, 2, "0", STR_PAD_LEFT); + array_push($new_facility_arr, $facility_no_tmp); + } + return $new_facility_arr; + case "B": + $next_seq = $this->getNextFacilitySeq("bf_vol_no"); + $new_facility_arr = []; + for ($start_num = 1; $start_num <= $num; $start_num++) { + $facility_no_tmp = $Y . $sale_type . $make_type[$start_num - 1] + . str_pad($next_seq + 1, 3, "0", STR_PAD_LEFT) + . str_pad($start_num, 2, "0", STR_PAD_LEFT); + array_push($new_facility_arr, $facility_no_tmp); + } + return $new_facility_arr; + default: + return "不存在的作番類型"; + } + } + + /** + * 建立新的作番 + * @param string $facility_type : M:新梯 T:汰改 B:保養 + * @param string $sale_type : M:内銷 E:外銷 T:他社维保 J:汰改 X:特殊部品 + * @param array $make_type : X:小機房 W:無機房 H:家用梯 Z:雜物梯 F:扶梯 B:部品 Q:品保對策 T:研究開發 N:設備 W:出貨現場要求購買 J:營業問題對策 Y:已出貨作番營業進行規格訂正 + * @param string $num : 號機 (非必填) + * @return string $new_facility_no + */ + function makeFacilityNo($facility_type, $sale_type, $make_type, $num = null) + { + + $this->checkYearAndResetAllSeq(); + + $faclikity_details = array( + 'facility_type' => $facility_type, + 'sale_type' => $sale_type, + 'make_type' => $make_type, + 'num' => $num + ); + + switch ($facility_type) { + case "M": + return $this->makeNewMFacilityNo($faclikity_details); + break; + case "T": + return $this->makeNewTFacilityNo($faclikity_details); + break; + case "B": + return $this->makeNewBFacilityNo($faclikity_details); + break; + default: + return "不存在的作番類型"; + } + } + + /** + * 建立作番 -- 新梯 + */ + function makeNewMFacilityNo($faclikity_details) + { + $Y = substr(date("Y"), 3, 1); + $sale_type = $faclikity_details['sale_type']; + $make_type = $faclikity_details['make_type']; + $num = $faclikity_details['num']; + $next_seq = $this->getNextFacilitySeq("mf_vol_no") + 1; + $new_facility_no_arr = []; + + for ($i = 1; $i <= $num; $i++) { + $new_facility_no = $Y . $sale_type . $make_type[$i - 1] + . str_pad($next_seq, 5, "0", STR_PAD_LEFT); + array_push($new_facility_no_arr, $new_facility_no); + $next_seq++; + } + + foreach ($new_facility_no_arr as $new_facility_no) { + if ($this->getMakeNewMFacilityNoStatus($faclikity_details) !== "1") { + return $new_facility_no . ":" . $this->getMakeNewTFacilityNoStatus($faclikity_details); + } + // seq +1 + $this->facilitySeqAddOne("M"); + } + return $new_facility_no_arr; + } + + /** + * 建立作番 -- 汰改 + */ + function makeNewTFacilityNo($faclikity_details) + { + + $Y = substr(date("Y"), 3, 1); + $sale_type = $faclikity_details['sale_type']; + $make_type = $faclikity_details['make_type']; + $num = $faclikity_details['num']; + $next_seq = $this->getNextFacilitySeq("tf_vol_no"); + $new_facility_no_arr = []; + + for ($i = 1; $i <= $num; $i++) { + $new_facility_no = $Y . $sale_type . $make_type[$i - 1] + . str_pad($next_seq + 1, 3, "0", STR_PAD_LEFT) + . str_pad($i, 2, "0", STR_PAD_LEFT); + array_push($new_facility_no_arr, $new_facility_no); + } + + foreach ($new_facility_no_arr as $new_facility_no) { + if ($this->getMakeNewTFacilityNoStatus($faclikity_details) !== "1") { + return $new_facility_no . ":" . $this->getMakeNewTFacilityNoStatus($faclikity_details); + } + // seq +1 + $this->facilitySeqAddOne("T"); + return $new_facility_no_arr; + } + } + + /** + * 建立作番 -- 保養 + */ + function makeNewBFacilityNo($faclikity_details) + { + + $Y = substr(date("Y"), 3, 1); + $sale_type = $faclikity_details['sale_type']; + $make_type = $faclikity_details['make_type']; + $num = $faclikity_details['num']; + $next_seq = $this->getNextFacilitySeq("bf_vol_no"); + $new_facility_no_arr = []; + + for ($i = 1; $i <= $num; $i++) { + $new_facility_no = $Y . $sale_type . $make_type[$i - 1] + . str_pad($next_seq + 1, 3, "0", STR_PAD_LEFT) + . str_pad($i, 2, "0", STR_PAD_LEFT); + array_push($new_facility_no_arr, $new_facility_no); + } + + foreach ($new_facility_no_arr as $new_facility_no) { + if ($this->getMakeNewBFacilityNoStatus($faclikity_details) !== "1") { + return $new_facility_no . ":" . $this->getMakeNewBFacilityNoStatus($faclikity_details); + } + // seq +1 + $this->facilitySeqAddOne("B"); + return $new_facility_no_arr; + } + } + + /** + * 檢查作番編列狀態 - 新梯 + * @param array $faclikity_details + * @return string $status : 1:正確 else:error message + */ + function getMakeNewMFacilityNoStatus($faclikity_details) + { + $sale_type = $faclikity_details['sale_type']; + $make_type = $faclikity_details['make_type']; + + if ($this->checkSaleTypeStatus($sale_type) == false) + return "銷售代號錯誤"; + if ($this->checkMakeTypeStatus($make_type) == false) + return "製造編號類型錯誤"; + return "1"; + } + + /** + * 檢查作番編列狀態 - 汰改 + * @param array $faclikity_details + * @return string $status : 1:正確 else:error message + */ + function getMakeNewTFacilityNoStatus($faclikity_details) + { + $sale_type = $faclikity_details['sale_type']; + $make_type = $faclikity_details['make_type']; + + if ($this->checkSaleTypeStatus($sale_type) == false) + return "銷售代號錯誤"; + if ($this->checkMakeTypeStatus($make_type) == false) + return "製造編號類型錯誤"; + return "1"; + } + + /** + * 檢查作番編列狀態 - 保養 + * @param array $faclikity_details + * @return string $status : 1:正確 else:error message + */ + function getMakeNewBFacilityNoStatus($faclikity_details) + { + $sale_type = $faclikity_details['sale_type']; + $make_type = $faclikity_details['make_type']; + + if ($this->checkSaleTypeStatus($sale_type) == false) + return "銷售代號錯誤"; + if ($this->checkMakeTypeStatus($make_type) == false) + return "製造編號類型錯誤"; + return "1"; + } + + /** + * seq 取號 + * @param string $type M:新梯 T:汰改 B:保養 + */ + function facilitySeqAddOne($type) + { + $type_arr = array( + "M" => "mf_vol_no", + "T" => "tf_vol_no", + "B" => "bf_vol_no", + ); + if (!empty($type_arr[$type])) { + $pdo = $this->connectionDB(); + $pdo->exec('SET CHARACTER SET utf8mb4'); + $sth = $pdo->prepare('UPDATE sequence SET current_val = current_val + 1 WHERE `seq_name` = ?'); + $sth->bindValue(1, $type_arr[$type]); + $sth->execute(); + } + } + + /** + * 修正 seq 取號 + * @param string $type M:新梯 T:汰改 B:保養 + */ + function facilityFixSeq($type) + { + $pdo = $this->connectionDB(); + $pdo->exec('SET CHARACTER SET utf8mb4'); + $type_arr = array( + "M" => "mf_vol_no", + "T" => "tf_vol_no", + "B" => "bf_vol_no", + ); + $after_fix_seq = $this->getMaxSeq($type); + $sql = " + UPDATE sequence + SET current_val = ? + WHERE seq_name = ? + "; + $sth = $pdo->prepare($sql); + $sth->bindValue(1, $after_fix_seq); + $sth->bindValue(2, $type_arr[$type]); + $sth->execute(); + } + + function getMaxSeq($type) + { + $pdo = $this->connectionDB(); + $pdo->exec('SET CHARACTER SET utf8mb4'); + $Y = substr(date("Y"), 3, 1); + $seq_num = $type == 'M' ? 5 : 3; + $sql = " + SELECT MAX(SUBSTR(f.facilityno,4,?))+1 AS seq + FROM facility AS f + WHERE 1=1 + AND SUBSTR(f.facilityno,1,1) = ? + AND f.define = ? + ORDER BY SUBSTR(f.facilityno,4,3) ASC + "; + $sth = $pdo->prepare($sql); + $sth->bindValue(1, $seq_num); + $sth->bindValue(2, $Y); + $sth->bindValue(3, $type); + $sth->execute(); + $result = $sth->fetch(); + return $result['seq']; + } + + /** + * 檢查年月後 新梯及汰改seq歸零 + */ + function checkYearAndResetAllSeq() + { + $pdo = $this->connectionDB(); + $pdo->exec('SET CHARACTER SET utf8mb4'); + $sth = $pdo->prepare('SELECT * FROM `sequence` WHERE `seq_name` = ?'); + $sth->bindValue(1, 'mf_vol_no'); + $sth->execute(); + $result = $sth->fetch(); + $yyyymm = $result['yyyymm']; + $dataY = substr($yyyymm, 0, 4); + $today_Y = date("Y"); + $today_Ym = date("Ym"); + if ($dataY != $today_Y) { + $sth = $pdo->prepare('UPDATE `sequence` SET `current_val` = ? , `yyyymm` = ? WHERE `seq_name` = ?'); + $sth->bindValue(1, '0'); + $sth->bindValue(2, $today_Ym); + $sth->bindValue(3, 'mf_vol_no'); + $sth->execute(); + } + } + + /** + * 檢查作番在 facility table 中是否重複 + * @param string|array $facility_no + * @return boolean $status : true:沒重複 false:重複 + */ + function checkFacilityRepeatStatus($facility_no) + { + if (gettype($facility_no) == "string") { + $pdo = $this->connectionDB(); + $pdo->exec('SET CHARACTER SET utf8mb4'); + $sth = $pdo->prepare('SELECT * FROM `facility` WHERE `facilityno` = ?'); + $sth->bindValue(1, $facility_no); + $sth->execute(); + if ($sth->rowCount() == 0) + return true; + return false; + } + if (gettype($facility_no) == "array") { + $pdo = $this->connectionDB(); + $pdo->exec('SET CHARACTER SET utf8mb4'); + $status = true; + foreach ($facility_no as $row) { + $sth = $pdo->prepare('SELECT * FROM `facility` WHERE `facilityno` = ?'); + $sth->bindValue(1, $row); + $sth->execute(); + if ($sth->rowCount() !== 0) + $status = false; + } + return $status; + } + } + + /** + * 檢查 $sale_type 是否有存在規則之中 + * @param string $sale_type : M:内銷 E:外銷 T:他社维保 J:汰改 X:特殊部品 + * @return boolean $status : true:合法代碼 false:非法代碼 + */ + function checkSaleTypeStatus($sale_type) + { + + if (!in_array($sale_type, ['M', 'E', 'T', 'J', 'X'])) + return false; + return true; + } + + /** + * 檢查 $sale_type 是否有存在規則之中 + * @param array $make_type : X:小機房 W:無機房 H:家用梯 Z:雜物梯 F:扶梯 B:部品 Q:品保對策 T:研究開發 N:設備 W:出貨現場要求購買 J:營業問題對策 Y:已出貨作番營業進行規格訂正 + * @return boolean $status : true:合法代碼 false:非法代碼 + */ + function checkMakeTypeStatus($make_type) + { + foreach ($make_type as $row) + if (!in_array($row, ['X', 'W', 'H', 'Z', 'F', 'B', 'Q', 'T', 'N', 'W', 'J', 'Y'])) + return false; + return true; + } + + /** + * 檢查 取得下個作番的 seq + * @param string $seq_name : 新梯:mf_vol_no 汰改:tf_vol_no 保養:bf_vol_no + * @return int $seq : 作番流水號 + */ + function getNextFacilitySeq($seq_name) + { + $pdo = $this->connectionDB(); + $pdo->exec('SET CHARACTER SET utf8mb4'); + $sth = $pdo->prepare('SELECT * FROM `sequence` WHERE `seq_name` = ?'); + $sth->bindValue(1, $seq_name); + $sth->execute(); + $result = $sth->fetch(); + return $result['current_val']; + } + + /** + * 建立新的新梯作番 + * @param string $sale_type : M:内銷 E:外銷 T:他社维保 J:汰改 X:特殊部品 + * @param array $make_type : X:小機房 W:無機房 H:家用梯 Z:雜物梯 F:扶梯 B:部品 Q:品保對策 T:研究開發 N:設備 W:出貨現場要求購買 J:營業問題對策 Y:已出貨作番營業進行規格訂正 + * @param int $seq_name : 幾個案場 0-99 + * @return array $new_facilityno : 作番號 + */ + function makeMFacilityNo($sale_type, $make_type, $num) + { + if (count($make_type) !== $num) + return "陣列數量不一致!"; + $new_facility_no = $this->getNextFacilityNo("M", $sale_type, $make_type, $num); + if ($this->checkFacilityRepeatStatus($new_facility_no) == false) { + // 如果作番號重複 使用此函數修正 + $this->facilityFixSeq("M"); + } + return $this->makeFacilityNo("M", $sale_type, $make_type, $num); + } + + /** + * 建立新的汰改作番 + * @param array $sale_type : M:内銷 E:外銷 T:他社维保 J:汰改 X:特殊部品 + * @param array $make_type : X:小機房 W:無機房 H:家用梯 Z:雜物梯 F:扶梯 B:部品 Q:品保對策 T:研究開發 N:設備 W:出貨現場要求購買 J:營業問題對策 Y:已出貨作番營業進行規格訂正 + * @param int $seq_name : 幾個案場 0-99 + * @return array $new_facilityno : 作番號 + */ + function makeTFacilityNo($sale_type, $make_type, $num) + { + if (count($make_type) !== $num) + return "陣列數量不一致!"; + $new_facility_no = $this->getNextFacilityNo("T", $sale_type, $make_type, $num); + if ($this->checkFacilityRepeatStatus($new_facility_no) == false) { + // 如果作番號重複 使用此函數修正 + $this->facilityFixSeq("T"); + } + return $this->makeFacilityNo("T", $sale_type, $make_type, $num); + } + + /** + * 建立新的保養作番 + * @param string $sale_type : M:内銷 E:外銷 T:他社维保 J:汰改 X:特殊部品 + * @param array $make_type : X:小機房 W:無機房 H:家用梯 Z:雜物梯 F:扶梯 B:部品 Q:品保對策 T:研究開發 N:設備 W:出貨現場要求購買 J:營業問題對策 Y:已出貨作番營業進行規格訂正 + * @param int $seq_name : 幾個案場 0-99 + * @return array $new_facilityno : 作番號 + */ + function makeBFacilityNo($sale_type, $make_type, $num = 1) + { + if (count($make_type) !== $num) + return "陣列數量不一致!"; + $new_facility_no = $this->getNextFacilityNo("B", $sale_type, $make_type, $num); + if ($this->checkFacilityRepeatStatus($new_facility_no) == false) { + // 如果作番號重複 使用此函數修正 + $this->facilityFixSeq("B"); + } + return $this->makeFacilityNo("B", $sale_type, $make_type, $num); + } +} + + +// $cfn = new CreateFacilityNo; +// // 建立作番號 - 新梯 +// print_r($cfn->makeMFacilityNo("M", ["X", "W"], 2)); +// echo "

"; +// // 建立作番號 - 汰改 +// print_r($cfn->makeTFacilityNo("M", ["X", "W"], 2)); +// echo "

"; +// // 建立作番號 - 保養 +// print_r($cfn->makeBFacilityNo("M", ["X", "W"], 2)); +// echo "

"; diff --git a/wms/contract-repair/api/getPriceview.php b/wms/contract-repair/api/getPriceview.php new file mode 100644 index 00000000..0d52f0a8 --- /dev/null +++ b/wms/contract-repair/api/getPriceview.php @@ -0,0 +1,16 @@ +prepare($sql_str); + $stmt->bindParam(':id',$id); + $stmt->execute(); + $prices = $stmt->fetch(PDO::FETCH_ASSOC); + header("Content-Type: application/json"); + + echo json_encode(['prices'=> $prices]); + +}catch (PDOException $e ){ + die("ERROR!!!: ". $e->getMessage()); +} \ No newline at end of file diff --git a/wms/contract-repair/api/postContractData.php b/wms/contract-repair/api/postContractData.php new file mode 100644 index 00000000..b4815669 --- /dev/null +++ b/wms/contract-repair/api/postContractData.php @@ -0,0 +1,423 @@ + 0) { + header("HTTP/1.1 422 Unprocessable Entity"); + echo json_encode($fail_arr); + exit(); + } + + //create account table + $accounttype = "A"; + $accountid = $vat; + $pwd = "123"; + $name = $partyA; + $tel = $phone ?? ''; + $repairerid = $mworker; + $creater = $user_id; + $create_at = date('Y-m-d H:i:s'); + + $conn->beginTransaction(); + + $sql_str = "INSERT INTO account (accounttype, accountid, pwd, name, tel, address, email, repairerid, creater, create_at) VALUES (:accounttype, :accountid, :pwd, :name, :tel, :address, :email, :repairerid, :creater, :create_at)"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':accounttype', $accounttype); + $stmt->bindParam(':accountid', $accountid); + $stmt->bindParam(':pwd', $pwd); + $stmt->bindParam(':name', $name); + $stmt->bindParam(':tel', $tel); + $stmt->bindParam(':address', $address); + $stmt->bindParam(':email', $email); + $stmt->bindParam(':repairerid', $repairerid); + $stmt->bindParam(':creater', $creater); + $stmt->bindParam(':create_at', $create_at); + $stmt->execute(); + + //create contract table + + $contracttype = $mtype; + $company = $partyA; + $taxid = $vat; + $tel = $phone; + $promiser = $partyA; + $contractperson = $partyA; + + $contractaddress = $address; + $contracttel = $phone; + $contractemail = $email; + $contract_employee = $salesman; + $start_date = $contract_begin_date; + $end_date = $contract_end_date; + + $sql_str = "INSERT INTO contract (contracttype, contractno, company, taxid, address, tel, promiser, contractperson, contractaddress, contracttel, contractemail, contract_employee, start_date, end_date, creater, create_at) VALUES (:contracttype, :contractno, :company, :taxid, :address, :tel, :promiser, :contractperson, :contractaddress, :contracttel, :contractemail, :contract_employee, :start_date, :end_date, :creater, :create_at)"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':contracttype', $contracttype); + $stmt->bindParam(':contractno', $contractno); + $stmt->bindParam(':company', $company); + $stmt->bindParam(':taxid', $taxid); + $stmt->bindParam(':address', $address); + $stmt->bindParam(':tel', $tel); + $stmt->bindParam(':promiser', $promiser); + $stmt->bindParam(':contractperson', $contractperson); + $stmt->bindParam(':contractaddress', $contractaddress); + $stmt->bindParam(':contracttel', $contracttel); + $stmt->bindParam(':contractemail', $contractemail); + $stmt->bindParam(':contract_employee', $contract_employee); + $stmt->bindParam(':start_date', $start_date); + $stmt->bindParam(':end_date', $end_date); + $stmt->bindParam(':creater', $creater); + $stmt->bindParam(':create_at', $create_at); + $stmt->execute(); + + //create facility table + $createFacilityNo = new CreateFacilityNo(); + $dailyNecessities = [ + 'MAE100' => 'X', + 'MAM200' => 'W', + 'MAH100' => 'H', + 'MAQ100' => 'Z', + 'MAF100' => 'F', + 'MAZ100' => 'B', + ]; + $facility_arr = []; + foreach ($elevators as $elevator) { + $facility_arr[] = $dailyNecessities[$elevator['spec']]; + } + echo json_encode($facility_arr); + $facilityno = $createFacilityNo->makeBFacilityNo("T", $facility_arr, (int)$num); + echo json_encode($facilityno); + echo '-------'; + $sql_str = "SELECT accountid, name FROM account WHERE accountid = :accountid"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':accountid', $mworker); + $stmt->execute(); + $worker = $stmt->fetch(PDO::FETCH_ASSOC); + $customerid = $vat; + $define = "B"; + $repairtype = $mtype; + $repairerid = $mworker; + $repairername = $worker['name']; + foreach ($elevators as $idx => $elevator) { + $sql_str = "INSERT INTO facility (contractno, define, facilityno, latitude, longitude, customerid, weight, numberofpassenger, numberofstop, numberoffloor, opentype, speed, repairtype, maintainance, facility_kind, address, repairerid, repairername, creater, create_at, area, takecertificatedate, licensedate) + VALUES (:contractno, :define, :facilityno, :latitude, :longitude, :customerid, :weight, :numberofpassenger, :numberofstop, :numberoffloor, :opentype, :speed, :repairtype, :maintainance, :facility_kind, :address, :repairerid, :repairername, :creater, :create_at, :area, :takecertificatedate, :licensedate)"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':contractno', $contractno); + $stmt->bindParam(':define', $define); + $stmt->bindParam(':facilityno', $facilityno[$idx]); + $stmt->bindParam(':latitude', $elevator['latitude']); + $stmt->bindParam(':longitude', $elevator['longitude']); + $stmt->bindParam(':customerid', $customerid); + $stmt->bindParam(':weight', $elevator['weight']); + $stmt->bindParam(':numberofpassenger', $elevator['persons']); + $stmt->bindParam(':numberofstop', $elevator['stop']); + $stmt->bindParam(':numberoffloor', $elevator['floors']); + $stmt->bindParam(':opentype', $elevator['opendoor']); + $stmt->bindParam(':speed', $elevator['speed']); + $stmt->bindParam(':repairtype', $repairtype); + $stmt->bindParam(':maintainance', $elevator['maintainance']); + $stmt->bindParam(':facility_kind', $elevator['spec']); + $stmt->bindParam(':address', $address); + $stmt->bindParam(':repairerid', $repairerid); + $stmt->bindParam(':repairername', $repairername); + $stmt->bindParam(':creater', $creater); + $stmt->bindParam(':create_at', $create_at); + $stmt->bindParam(':area', $area); + $stmt->bindParam(':takecertificatedate', $elevator['takecertificatedate']); + $stmt->bindParam(':licensedate', $elevator['useful_date']); + $result = $stmt->execute(); + } + + //create schedule table + + $comboNo = new CreateComboNo($mcycle, $contract_begin_date, $contract_end_date); + $comboArr = json_decode($comboNo->getComboNo(), true); + foreach ($facilityno as $no) { + foreach ($comboArr as $combo) { + $sql_str = 'INSERT INTO schedule (contractno, facilityno, combono, repairerid, repairername, duedate, creater, create_at) VALUES (:contractno, :facilityno, :combono, :repairerid, :repairername, :duedate, :creater, :create_at)'; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':contractno', $contractno); + $stmt->bindParam(':facilityno', $no); + $stmt->bindParam(':combono', $combo[0]); + $stmt->bindParam(':repairerid', $repairerid); + $stmt->bindParam(':repairername', $repairername); + $stmt->bindParam(':duedate', $combo[1]); + $stmt->bindParam(':creater', $creater); + $stmt->bindParam(':create_at', $create_at); + $result = $stmt->execute(); + } + } + // create contract_b_signed_back table + $contract_type = $mtype; + $company = $customer; + $customer_no = $vat; + $salesperson = $salesman; + $customer_phone = $phone; + $customer_email = $email; + $repairman = $mworker; + $cycle = $mcycle; + $contact_person = $partyA; + $contact_address = $partyAaddress; + $contact_phone = $partyAphone; + $contract_email = $partyAemail; + $elevators_number = $num; + $bonus = 1000; + $max_bonus = 2000; + + if (!empty($files)) { + $englisharr = range('a', 'z'); + $file = $_FILES['files']; + $file_name = $file['name']; + $file_type = $file['type']; + $tmp_name = $file['tmp_name']; + $file_size = $file['size']; + $error = $file['error']; + $newfiles = []; + foreach ($files as $file) { + $i = 0; //新陣列的索引編號 + foreach ($file as $key => $val) { + $newfiles[$i]['name'] = $files['name'][$key]; + $newfiles[$i]['type'] = $files['type'][$key]; + $newfiles[$i]['tmp_name'] = $files['tmp_name'][$key]; + $newfiles[$i]['error'] = $files['error'][$key]; + $newfiles[$i]['size'] = $files['size'][$key]; + $i++; + } //foreach 第2層 end + } + $max_size = 4096 * 4096; //設定允許上傳檔案容量的最大值(1M) + $allow_ext = array('jpeg', 'jpg', 'png', 'JPG', 'JPEG', 'PNG', 'GIF'); //設定允許上傳檔案的類型 + $path = '../images/contracts/'; + if (!file_exists($path)) { + mkdir($path); + } + $msg_result = ''; //負責接收所有檔案檢測後的回傳訊息 + $datetime = (string)date('YmdHis'); + $files_id = 'b' . $datetime; // 保養=>b + 日期時間 + foreach ($newfiles as $key => $file) { + $randNum = rand(1000, 9999); + $randEnglish = $englisharr[rand(0, 25)]; + $file_name = 'b' . (string)date('YmdHis') . $randNum . $randEnglish . $randNum . $file['name']; + $msg = upload_chk($file, $path, $max_size, $allow_ext, $file_name); + if ($msg == 1) { + $msg = '檔案傳送成功!'; + $sql_str = "INSERT INTO contract_back_files (files_id, file_name, file_mime, file_size, created_at, created_by) VALUES (:files_id, :file_name, :file_mime, :file_size, :created_at, :created_by)"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(':files_id', $files_id); + $stmt->bindParam(':file_name', $file_name); + $stmt->bindParam(':file_mime', $file['type']); + $stmt->bindParam(':file_size', $file['size']); + $stmt->bindParam(':created_at', $created_at); + $stmt->bindParam(':created_by', $user_id); + $stmt->execute(); + } + $msg_result .= '第' . ($key + 1) . '個上傳檔案的結果:' . $msg . '
'; + $src_name = $path . $file['name']; + if (file_exists($src_name)) { + //副檔名 + $extname = pathinfo($src_name, PATHINFO_EXTENSION); + //主檔名 + $basename = basename($src_name, '.' . $extname); + } + } + } else { + $files = null; + } + $sql_str = "INSERT INTO contract_b_signed_back (contract_no, contract_type, company, customer_no, salesperson, contract_start_date, contract_end_date, total_price, customer_phone, customer_email, repairman, cycle, contact_person, contact_address, contact_phone, contact_email, elevators_number, area, address, files_id, bonus, max_bonus, created_at, created_by) + VALUES (:contract_no, :contract_type, :company, :customer_no, :salesperson, :contract_start_date, :contract_end_date, :total_price, :customer_phone, :customer_email, :repairman, :cycle, :contact_person, :contact_address, :contact_phone, :contact_email, :elevators_number, :area, :address, :files_id, :bonus, :max_bonus, :created_at, :created_by)"; + $stmt = $conn->prepare($sql_str); + $stmt->bindParam(":contract_no", $contractno); + $stmt->bindParam(":contract_type", $contract_type); + $stmt->bindParam(":company", $company); + $stmt->bindParam(":customer_no", $customer_no); + $stmt->bindParam(":salesperson", $salesperson); + $stmt->bindParam(":contract_start_date", $contract_begin_date); + $stmt->bindParam(":contract_end_date", $contract_end_date); + $stmt->bindParam(":total_price", $total_price); + $stmt->bindParam(":customer_phone", $customer_phone); + $stmt->bindParam(":customer_email", $customer_email); + $stmt->bindParam(":repairman", $repairman); + $stmt->bindParam(":cycle", $cycle); + $stmt->bindParam(":contact_person", $contact_person); + $stmt->bindParam(":contact_address", $contact_address); + $stmt->bindParam(":contact_phone", $contact_phone); + $stmt->bindParam(":contact_email", $contact_email); + $stmt->bindParam(":elevators_number", $elevators_number); + $stmt->bindParam(":area", $area); + $stmt->bindParam(":address", $address); + $stmt->bindParam(":files_id", $files_id); + $stmt->bindParam(":bonus", $bonus); + $stmt->bindParam(":max_bonus", $max_bonus); + $stmt->bindParam(":created_at", $created_at); + $stmt->bindParam(":created_by", $user_id); + + $stmt->execute(); + + header('Content-Type: application/json'); + // $jsonData = json_encode($files); + + $conn->commit(); + } catch (PDOException $e) { + $conn->rollback(); + echo $e->getMessage(); + die('Error!:' . $e->getMessage()); + } +} + + +////////////////////////////// +//// 合約簽回(修理) +//// +//// 製作人:梓誠 +/// 時間 : +////////////////////////////// +if (isset($_POST['contractno']) && $_POST['contractno'] != "" && isset($_POST['contracttype']) && $_POST['contracttype'] == 'r') { + // echo $_POST; + // exit; + try { + $created_at = date('Y-m-d H:i:s'); + $contractno = !empty($_POST['contractno']) ? $_POST['contractno'] : null; + $company = !empty($_POST['company']) ? $_POST['company'] : null; + $repairid = !empty($_POST['repairid']) ? $_POST['repairid'] : null; + $facilityno = !empty($_POST['facilityno']) ? $_POST['facilityno'] : null; + $taxid = !empty($_POST['taxid']) ? $_POST['taxid'] : null; + $invoice = !empty($_POST['invoice']) ? $_POST['invoice'] : null; + $address = !empty($_POST['address']) ? $_POST['address'] : null; + $repair_no = !empty($_POST['repair_no']) ? $_POST['repair_no'] : null; + $total_price = !empty($_POST['total_price']) ? $_POST['total_price'] : null; + $user_id = !empty($_POST['user_id']) ? $_POST['user_id'] : null; + $type = !empty($_POST['type']) ? $_POST['type'] : null; + $sign_date = !empty($_POST['sign_date']) ? $_POST['sign_date'] : null; + $contract_status = !empty($_POST['contract_status']) ? $_POST['contract_status'] : 1; + + $fail_arr = []; + + if (empty($contractno)) $fail_arr[] = '合約號為必填'; + if (empty($repair_no)) $fail_arr[] = '報價單編號為必填'; + if (empty($company)) $fail_arr[] = '客戶名稱為必填'; + if (empty($repairid)) $fail_arr[] = '為保人員為必填'; + // iempty(f($taxid === '') return $fail_arr[] = '統一編號為必填'; + if (empty($facilityno)) $fail_arr[] = '電梯編號為必填'; + if (empty($address)) $fail_arr[] = '工程地址為必填'; + if (empty($type)) $fail_arr[] = '工程類別為必填'; + if (empty($invoice)) $fail_arr[] = '發票抬頭為必填'; + if (empty($taxid)) $fail_arr[] = '統一編號為必填'; + // echo json_encode($fail_arr); + // exit; + if (count($fail_arr) > 0) { + header("HTTP/1.1 422 Unprocessable Entity"); + echo json_encode($fail_arr); + exit(); + } + // exit(); + //create contrac_r_signed_back table + $conn->beginTransaction(); + $sql = "INSERT INTO contract_r_signed_back( + repair_no, + contractno, + company, + taxid, + facilityno, + address, + type, + invoice, + repaireid, + total_price, + sign_date, + contract_status, + create_user, + create_date) VALUES( + :repair_no, + :contractno, + :company, + :taxid, + :facilityno, + :address, + :type, + :invoice, + :repaireid, + :total_price, + :sign_date, + :contract_status, + :create_userid, + :create_date + )"; + $stmt = $conn->prepare($sql); + $stmt->bindParam(":repair_no", $repair_no); + $stmt->bindParam(":contractno", $contractno); + $stmt->bindParam(":company", $company); + $stmt->bindParam(":taxid", $taxid); + $stmt->bindParam(":facilityno", $facilityno); + $stmt->bindParam(":address", $address); + $stmt->bindParam(":type", $type); + $stmt->bindParam(":invoice", $invoice); + $stmt->bindParam(":repaireid", $repairid); + $stmt->bindParam(":total_price", $total_price); + $stmt->bindParam(":sign_date", $sign_date); + $stmt->bindParam(":contract_status", $contract_status); + $stmt->bindParam(":create_userid", $user_id); + $stmt->bindParam("create_date", $created_at); + + $stmt->execute(); + header('Content-Type: application/json'); + // $jsonData = json_encode($files); + + $conn->commit(); + } catch (PDOException $e) { + $conn->rollback(); + header("HTTP/1.1 422 Unprocessable Entity"); + echo $e->getMessage(); + die('Error!' . $e->getMessage()); + } +} diff --git a/wms/contract-repair/api/postContractNewApplyData.php b/wms/contract-repair/api/postContractNewApplyData.php new file mode 100644 index 00000000..f0032a78 --- /dev/null +++ b/wms/contract-repair/api/postContractNewApplyData.php @@ -0,0 +1,68 @@ +beginTransaction(); + try{ + if($isFirst == 1){ + $sql_str = "INSERT INTO contract_new_apply (mid, contractno, sales_man, apply_date, apply_type, case_name, customer, manager, vat, total_price, buy_fee, install_fee, contact_address, workdeadline_a, workdeadline_b, test_time, freedeadline, trade_address, tradedeadline, progress, status, created_at, created_by) VALUES (:mid, :contractno, :sales_man, :apply_date, :apply_type, :case_name, :customer, :manager, :vat, :total_price, :buy_fee, :install_fee, :contact_address, :workdeadline_a, :workdeadline_b, :test_time, :freedeadline, :trade_address, :tradedeadline, :progress, :status, :created_at, :created_by)"; + $stmt = $conn -> prepare($sql_str); + $stmt ->bindParam(':mid', $mid); + $stmt ->bindParam(':contractno', $vol_no); + $stmt ->bindParam(':sales_man', $salesman); + $stmt ->bindParam(':apply_date', $apply_date); + $stmt ->bindParam(':apply_type', $apply_type); + $stmt ->bindParam(':case_name', $case_name); + $stmt ->bindParam(':customer', $customer); + $stmt ->bindParam(':manager', $manager); + $stmt ->bindParam(':vat', $vat); + $stmt ->bindParam(':total_price', $total_price); + $stmt ->bindParam(':buy_fee', $buy_fee); + $stmt ->bindParam(':install_fee', $install_fee); + $stmt ->bindParam(':contact_address', $contact_address); + $stmt ->bindParam(':workdeadline_a', $workdeadline_a); + $stmt ->bindParam(':workdeadline_b', $workdeadline_b); + $stmt ->bindParam(':test_time', $test_time); + $stmt ->bindParam(':freedeadline', $freedeadline); + $stmt ->bindParam(':trade_address', $trade_address); + $stmt ->bindParam(':tradedeadline', $tradedeadline); + $stmt ->bindParam(':progress', $progress); + $stmt ->bindParam(':status', $status); + $stmt ->bindParam(':created_at', $created_at); + $stmt ->bindParam(':created_by', $created_by); + $stmt ->execute(); + header("HTTP/1.1 201 success!"); + $conn->commit(); + } + }catch(PDOException $e){ + $conn->rollback(); + echo $e->getMessage(); + die('Error!:'.$e->getMessage()); + } + + +} \ No newline at end of file diff --git a/wms/contract-repair/api/postNewContractData.php b/wms/contract-repair/api/postNewContractData.php new file mode 100644 index 00000000..001fe1f5 --- /dev/null +++ b/wms/contract-repair/api/postNewContractData.php @@ -0,0 +1,139 @@ + 0) { + header("HTTP/1.1 422 Unprocessable Entity"); + echo json_encode($fail_arr); + exit(); + } + + + $conn->beginTransaction(); + + $sql_str = "SELECT accountid, name FROM account WHERE accountid = :accountid ORDER BY create_at DESC"; + $stmt = $conn -> prepare($sql_str); + $stmt -> bindParam(":accountid",$salesman); + $stmt -> execute(); + $saleman = $stmt->fetch(PDO::FETCH_ASSOC); + $salesman_name = $saleman['name']; + if(!empty($files)){ + $englisharr = range('a', 'z'); + $files = $_FILES['files']; + $newfiles = []; + foreach( $files as $file ){ + $i = 0; //新陣列的索引編號 + foreach( $file as $key => $val ){ + $newfiles[$i]['name'] = $files['name'][$key]; + $newfiles[$i]['type'] = $files['type'][$key]; + $newfiles[$i]['tmp_name'] = $files['tmp_name'][$key]; + $newfiles[$i]['error'] = $files['error'][$key]; + $newfiles[$i]['size'] = $files['size'][$key]; + $i++; + } //foreach 第2層 end + } + $max_size = 4096*4096; //設定允許上傳檔案容量的最大值(1M) + $allow_ext = array('jpeg', 'jpg', 'png','JPG','JPEG','PNG','GIF'); //設定允許上傳檔案的類型 + $path = '../images/contracts/'; + if (!file_exists($path)) { mkdir($path); } + $msg_result = ''; //負責接收所有檔案檢測後的回傳訊息 + $datetime = (string)date('YmdHis'); + $files_id = 'm' . $datetime; // 保養=>b + 日期時間 + foreach( $newfiles as $key => $file ){ + $randNum = rand(1000,9999); + $randEnglish = $englisharr[rand(0,25)]; + $file_name = 'm' . (string)date('YmdHis') . $randNum . $randEnglish . $randNum.$file['name']; + $msg = upload_chk( $file,$path, $max_size, $allow_ext, $file_name ); + if($msg==1){ + $msg = '檔案傳送成功!'; + $sql_str = "INSERT INTO contract_back_files (files_id, file_name, file_mime, file_size, created_at, created_by) VALUES (:files_id, :file_name, :file_mime, :file_size, :created_at, :created_by)"; + $stmt = $conn -> prepare($sql_str); + $stmt -> bindParam(':files_id' ,$files_id); + $stmt -> bindParam(':file_name' ,$file_name); + $stmt -> bindParam(':file_mime' ,$file['type']); + $stmt -> bindParam(':file_size' ,$file['size']); + $stmt -> bindParam(':created_at' ,$created_at); + $stmt -> bindParam(':created_by' ,$created_by); + $stmt ->execute(); + }else{ + throw new PDOException('檔案上傳失敗:' . $msg); + } + $msg_result .= '第' . ($key+1) . '個上傳檔案的結果:' . $msg . '
'; + $src_name = $path.$file['name']; + if( file_exists($src_name) ){ + //副檔名 + $extname = pathinfo($src_name, PATHINFO_EXTENSION); + //主檔名 + $basename = basename($src_name, '.'.$extname); + } + } + }else{ + $files = null; + } + + $sql_str = "INSERT INTO contract_m_signed_back (contract_no, customer, manager, vat, case_name, linkman, lm_tel, address, salesman, salesman_name, files_id, created_at, created_by, qc_official_type) VALUES (:contract_no, :customer, :manager, :vat, :case_name, :linkman, :lm_tel, :address, :salesman, :salesman_name, :files_id, :created_at, :created_by, :qc)"; + $stmt = $conn -> prepare($sql_str); + $stmt -> bindParam(":contract_no",$contractno); + $stmt -> bindParam(":customer",$customer); + $stmt -> bindParam(":manager",$manager); + $stmt -> bindParam(":vat",$vat); + $stmt -> bindParam(":case_name",$case_name); + $stmt -> bindParam(":linkman",$linkman); + $stmt -> bindParam(":lm_tel",$lm_tel); + $stmt -> bindParam(":address",$address); + $stmt -> bindParam(":salesman",$salesman); + $stmt -> bindParam(":salesman_name",$salesman_name); + $stmt -> bindParam(":files_id",$files_id); + $stmt -> bindParam(":created_at",$created_at); + $stmt -> bindParam(":created_by",$created_by); + $stmt -> bindParam(":qc",$qc); + $stmt -> execute(); + + + $result = $conn->commit(); + if($result){ + header("HTTP/1.1 201 Created"); + } + + }catch(PDOException $e){ + $conn->rollback(); + header("HTTP/1.1 500 Internal Server Error"); + die('Error!:'.$e->getMessage()); + } + } \ No newline at end of file diff --git a/wms/contract-repair/api/putContractData.php b/wms/contract-repair/api/putContractData.php new file mode 100644 index 00000000..cffa48a0 --- /dev/null +++ b/wms/contract-repair/api/putContractData.php @@ -0,0 +1,190 @@ + 0) { + header("HTTP/1.1 442 Unprocessable Entity"); + echo json_encode($fail_arr); + exit(); + } + // $conn->beginTransaction(); + + $sql = "UPDATE contract_r_signed_back SET + repaireid = :repaireid,facilityno= :facilityno, invoice=:invoice, taxid=:taxid, address=:address,type=:type,contract_status=:contract_status,update_user=:update_user,update_date=:update_date + WHERE id = :id"; + + $stmt = $conn->prepare($sql); + $stmt->bindParam(':repaireid', $repaireid); + $stmt->bindParam(':facilityno', $facilityno); + $stmt->bindParam(':invoice', $invoice); + $stmt->bindParam(':taxid', $taxid); + $stmt->bindParam(':address', $address); + $stmt->bindParam(':type', $type); + $stmt->bindParam(':contract_status', $contract_status); + $stmt->bindParam(':update_user', $user_id); + $stmt->bindParam(':update_date', $create_date); + + $stmt->bindParam(':id', $_POST['id']); + // echo json_encode($sql); + // exit; + $stmt->execute(); + // header("HTTP/1.1 204 NO Content"); + + // $conn->commit(); + } catch (PDOException $e) { + // $conn->rollback(); + header("HTTPP/1.1 500 Internal Server Error"); + die('Error!:' . $e->getMessage()); + } +} +// if (isset($_POST['contractno']) && $_POST['contractno'] != "" && isset($_POST["id"]) && $_POST['id'] != "") { +// try { +// $created_at = date('Y-m-d H:i:s'); +// $created_by = $_POST['user_id']; +// $id = $_POST["id"]; +// $contract_no = !empty($_POST['contractno']) ? $_POST['contractno'] : null; +// $customer = !empty($_POST['customer']) ? $_POST['customer'] : null; +// $manager = !empty($_POST['manager']) ? $_POST['manager'] : null; +// $vat = !empty($_POST['vat']) ? $_POST['vat'] : null; +// $case_name = !empty($_POST['case_name']) ? $_POST['case_name'] : null; +// $linkman = !empty($_POST['linkman']) ? $_POST['linkman'] : null; +// $lm_tel = !empty($_POST['lm_tel']) ? $_POST['lm_tel'] : null; +// $address = !empty($_POST['address']) ? $_POST['address'] : null; +// $salesman = !empty($_POST['salesman']) ? $_POST['salesman'] : null; +// $qc = !empty($_POST['qc']) ? $_POST['qc'] : null; +// $deletefiles = !empty($_POST['deletefiles']) ? $_POST['deletefiles'] : null; +// $files_id = !empty($_POST['files_id']) ? $_POST['files_id'] : null; +// $files = !empty($_FILES['files']) ? $_FILES['files'] : null; + +// $deletefilesArr = explode(',', $_POST['deletefiles']); + +// $fail_arr = []; +// if (empty($contract_no)) $fail_arr[] = '合約號為必填'; +// if (empty($customer)) $fail_arr[] = '客戶名稱為必填'; +// if (empty($manager)) $fail_arr[] = '負責人為必填'; +// if (empty($vat)) $fail_arr[] = '統編/身分證為必填'; +// if (empty($case_name)) $fail_arr[] = '案名為必填'; +// if (empty($linkman)) $fail_arr[] = '聯絡人為必填'; +// if (empty($lm_tel)) $fail_arr[] = '聯絡人電話為必填'; +// if (empty($address)) $fail_arr[] = '地址為必填'; +// if (empty($salesman)) $fail_arr[] = '營業員為必填'; +// if (empty($qc)) $fail_arr[] = '請選擇QC或管檢'; +// if (count($fail_arr) > 0) { +// header("HTTP/1.1 422 Unprocessable Entity"); +// echo json_encode($fail_arr); +// exit(); +// } + +// $conn->beginTransaction(); + +// $sql_str = "UPDATE contract_m_signed_back SET contract_no=:contract_no, customer=:customer, manager=:manager, vat=:vat, case_name=:case_name, linkman=:linkman, lm_tel=:lm_tel, address=:address, salesman=:salesman, qc_official_type=:qc WHERE id = :id"; +// $stmt = $conn->prepare($sql_str); +// $stmt->bindParam(':contract_no', $contract_no); +// $stmt->bindParam(':customer', $customer); +// $stmt->bindParam(':manager', $manager); +// $stmt->bindParam(':vat', $vat); +// $stmt->bindParam(':case_name', $case_name); +// $stmt->bindParam(':linkman', $linkman); +// $stmt->bindParam(':lm_tel', $lm_tel); +// $stmt->bindParam(':address', $address); +// $stmt->bindParam(':salesman', $salesman); +// $stmt->bindParam(':qc', $qc); +// $stmt->bindParam(':id', $id); +// $stmt->execute(); +// if (!empty($deletefiles)) { +// $sql_str = "DELETE FROM contract_back_files WHERE id IN ($deletefiles)"; +// $stmt = $conn->prepare($sql_str); +// $stmt->execute(); +// } + +// if (!empty($files)) { +// $englisharr = range('a', 'z'); +// $files = $_FILES['files']; +// $newfiles = []; +// foreach ($files as $file) { +// $i = 0; //新陣列的索引編號 +// foreach ($file as $key => $val) { +// $newfiles[$i]['name'] = $files['name'][$key]; +// $newfiles[$i]['type'] = $files['type'][$key]; +// $newfiles[$i]['tmp_name'] = $files['tmp_name'][$key]; +// $newfiles[$i]['error'] = $files['error'][$key]; +// $newfiles[$i]['size'] = $files['size'][$key]; +// $i++; +// } //foreach 第2層 end +// } +// $max_size = 4096 * 4096; //設定允許上傳檔案容量的最大值(1M) +// $allow_ext = array('jpeg', 'jpg', 'png', 'JPG', 'JPEG', 'PNG', 'GIF'); //設定允許上傳檔案的類型 +// $path = '../images/contracts/'; +// if (!file_exists($path)) { +// mkdir($path); +// } +// $msg_result = ''; //負責接收所有檔案檢測後的回傳訊息 +// $datetime = (string)date('YmdHis'); +// $files_id = ($files_id !== null) ? $files_id : 'm' . $datetime; // 新梯=>m + 日期時間 +// foreach ($newfiles as $key => $file) { +// $randNum = rand(1000, 9999); +// $randEnglish = $englisharr[rand(0, 25)]; +// $file_name = 'm' . (string)date('YmdHis') . $randNum . $randEnglish . $randNum . $file['name']; +// $msg = upload_chk($file, $path, $max_size, $allow_ext, $file_name); +// if ($msg == 1) { +// $msg = '檔案傳送成功!'; +// $sql_str = "INSERT INTO contract_back_files (files_id, file_name, file_mime, file_size, created_at, created_by) VALUES (:files_id, :file_name, :file_mime, :file_size, :created_at, :created_by)"; +// $stmt = $conn->prepare($sql_str); +// $stmt->bindParam(':files_id', $files_id); +// $stmt->bindParam(':file_name', $file_name); +// $stmt->bindParam(':file_mime', $file['type']); +// $stmt->bindParam(':file_size', $file['size']); +// $stmt->bindParam(':created_at', $created_at); +// $stmt->bindParam(':created_by', $created_by); +// $stmt->execute(); +// } else { +// throw new PDOException('檔案上傳失敗:' . $msg); +// } +// $msg_result .= '第' . ($key + 1) . '個上傳檔案的結果:' . $msg . '
'; +// $src_name = $path . $file['name']; +// if (file_exists($src_name)) { +// //副檔名 +// $extname = pathinfo($src_name, PATHINFO_EXTENSION); +// //主檔名 +// $basename = basename($src_name, '.' . $extname); +// } +// } +// } else { +// $files = null; +// } + +// $conn->commit(); +// } catch (PDOException $e) { +// $conn->rollback(); +// header("HTTP/1.1 500 Internal Server Error"); +// die('Error!:' . $e->getMessage()); +// } +// } diff --git a/wms/contract-repair/api/store_contract.php b/wms/contract-repair/api/store_contract.php new file mode 100644 index 00000000..e69de29b diff --git a/wms/contract-repair/api/upload_chk.php b/wms/contract-repair/api/upload_chk.php new file mode 100644 index 00000000..958cb6d5 --- /dev/null +++ b/wms/contract-repair/api/upload_chk.php @@ -0,0 +1,61 @@ + $max_size ){ + //當目前檔案容量超過容量限制時, 以下準備顯示的資訊 + if( $max_size >= 4096*4096 ){ + $max_size /= (4096*4096); + $max_size .= 'M'; + }elseif( $max_size >= 4096 ){ + $max_size /= 4096; + $max_size .= 'K'; + } + $msg ='上傳檔案過大,請選擇容量小於 '.$max_size.' 的檔案'; + + //3.判斷檔案類型 =========================================== + //in_array($ext, $allow_ext) 判斷 $ext變數的值 是否在 $allow_ext 這個陣列變數中 + }elseif( !in_array( $ext, $allow_ext ) ){ + $allow_str = ''; //準備將允許檔案類型的陣列內容, 組合成字串 + foreach( $allow_ext as $key=>$value ){ + //if的縮寫語法:條件?成立執行的工作:不成立執行的工作; + $key==0? $allow_str.= $value : $allow_str.=', '.$value; + } + $msg = '檔案類型不符合,請選擇 '.$allow_str.' 檔案'; + + //4.以上條件都沒問題的話, 則進行最後else中的工作=============== + }else{ + //搬移檔案 move_uploaded_file(要搬移的檔案, 目的地位置及目的檔案名稱), 成功傳回true(1) + $msg = @move_uploaded_file($tmp_name, $path.$file_name); + } + }else{ + //這裡表示上傳有錯誤, 匹配錯誤編號顯示對應的訊息 ====================================== + switch ($error) { + case 1: $msg = '上傳檔案超過 upload_max_filesize 容量最大值'; break; + case 2: $msg = '上傳檔案超過 post_max_size 總容量最大值'; break; + case 3: $msg = '檔案只有部份被上傳'; break; + case 4: $msg = '沒有檔案被上傳'; break; + case 6: $msg = '找不到主機端暫存檔案的目錄位置'; break; + case 7: $msg = '檔案寫入失敗'; break; + case 8: $msg = '上傳檔案被PHP程式中斷,表示主機端系統錯誤'; break; + } + } //if( $error == 0 ){ ..... end + + return $msg; //回傳$msg的結果 + } \ No newline at end of file diff --git a/wms/contract-repair/conn.php b/wms/contract-repair/conn.php new file mode 100644 index 00000000..b92e67e5 --- /dev/null +++ b/wms/contract-repair/conn.php @@ -0,0 +1,43 @@ +errorInfo()的形式獲取錯誤資訊 + //PDO::ERRMODE_WARNING: 引發 E_WARNING 錯誤,主動報錯 + //PDO::ERRMODE_EXCEPTION: 主動抛出 exceptions 異常,需要以try{}cath(){}輸出錯誤資訊。 + //設定主動以警告的形式報錯 + $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); + //如果連接錯誤,將抛出一個PDOException異常對象 +} +catch ( PDOException $e ){ + //如果連結資料庫失敗則顯示錯誤訊並停止本頁的工作 + die("ERROR!!!: ". $e->getMessage()); +} + +//$conn = null; //關閉資料庫的連線 \ No newline at end of file diff --git a/wms/contract-repair/contract-repair-edit.php b/wms/contract-repair/contract-repair-edit.php new file mode 100644 index 00000000..c1b940e9 --- /dev/null +++ b/wms/contract-repair/contract-repair-edit.php @@ -0,0 +1,214 @@ +prepare($sql_str); +$stmt->bindParam(':id', $id); +$stmt->execute(); +$contract = $stmt->fetch(PDO::FETCH_ASSOC); + +// echo '
';
+// print_r($contract['contract_status'] + 1);
+// echo '
'; + +// $files_id = $contract['files_id']; +// $sql_str = "SELECT * FROM contract_back_files WHERE files_id = :files_id "; +// $stmt = $conn->prepare($sql_str); +// $stmt->bindParam(':files_id', $files_id); +// $stmt->execute(); +// $files= $stmt->fetchAll(PDO::FETCH_ASSOC); +// $files = json_encode($files); +$accounttype = "M"; +$sql_str = "SELECT accountid, name FROM account WHERE accounttype = :accounttype"; +$stmt = $conn->prepare($sql_str); +$stmt->bindParam(":accounttype", $accounttype); +$stmt->execute(); +$persons = $stmt->fetchAll(PDO::FETCH_ASSOC); +$persons = array_map(function ($person) { + return [ + 'view' => $person['accountid'] . '-' . $person['name'], + 'value' => $person['accountid'], + 'name' => $person['name'] + ]; +}, $persons); +$contract_stauts = ["合約簽回", "採購", "工程發包", "工程中", "修理完成"]; + + + +?> + + + + + + + + + + + +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

合約管理(修理)

+
+

檢視合約

+
+ + +
立約人 + +

未填寫

+
維保人員 + +

未填寫

+
電梯編號 + +

未填寫

+
報價單編號 + +

未填寫

+
工程類別 + +

未填寫

+
簽訂時間 + +

未填寫

+
發票抬頭 + +

未填寫

+
統一編號 + +

未填寫

+
工程地址 + +

未填寫

+
工程進度 + +

未填寫

+
+ + +
+
+
+ + + + + + \ No newline at end of file diff --git a/wms/contract-repair/contract-repair-input.php b/wms/contract-repair/contract-repair-input.php new file mode 100644 index 00000000..525e7ab3 --- /dev/null +++ b/wms/contract-repair/contract-repair-input.php @@ -0,0 +1,185 @@ +prepare($sql_str); +$stmt->bindParam(':accounttype', $accounttype); +$stmt->execute(); +$workers = $stmt->fetchAll(PDO::FETCH_ASSOC); +$accounttype = "M"; +$sql_str = "SELECT id,accountid, name FROM account WHERE accounttype = :accounttype"; +$stmt = $conn->prepare($sql_str); +$stmt->bindParam(':accounttype', $accounttype); +$stmt->execute(); +$contractpersons = $stmt->fetchAll(PDO::FETCH_ASSOC); +$persons = array_map(function ($person) { + return [ + 'view' => $person['accountid'] . '-' . $person['name'], + 'value' => $person['accountid'], + 'name' => $person['name'] + ]; +}, $contractpersons); +$contract_stauts = ["合約簽回", "採購", "工程發包", "工程中", "修理完成"]; + +?> + + + + + + +
+
+ +
+ + + + + + + + +
+

合約入力(修理)

+
+ + + + + +
+
+ +
+ + + + \ No newline at end of file diff --git a/wms/contract-repair/contract-repair-management.php b/wms/contract-repair/contract-repair-management.php new file mode 100644 index 00000000..8aed456e --- /dev/null +++ b/wms/contract-repair/contract-repair-management.php @@ -0,0 +1,131 @@ +prepare($sql_str); +$stmt->execute(); +$contracts = $stmt->fetchAll(PDO::FETCH_ASSOC); +?> + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + $contract) : ?> + + + + + + + + + + + + + +
項次合約號客戶名稱統編總金額工程進度建檔者建立時間操作
+

+ + + + + + +

+
+
+
+ + + + + \ No newline at end of file diff --git a/wms/contract-repair/js/alpine.js b/wms/contract-repair/js/alpine.js new file mode 100644 index 00000000..3b05ef53 --- /dev/null +++ b/wms/contract-repair/js/alpine.js @@ -0,0 +1,1507 @@ +const contractDownload = () => { + return { + init() { + this.standardData = this.deepClone(this.data); + this.onstandardViewData = this.deepClone(this.data); + this.buystandardData = this.deepClone(this.buydata); + this.buyonstandardViewData = this.deepClone(this.buydata); + // CKEDITOR.replace('editor',{ + // extraplugins:'filebrowser', + // height:80, + // width:'100%', + // filebrowserUploadMethod:'form', + // filebrowserUploadUrl:'./ckeditor_upload.php' + // }); + }, + installfill1: '', + installfill2: '', + installAffix: 1, + buyfill1: '', + buyfill2: '', + buyAffix: 1, + css: `table { background-color: #fff; border: none; margin-top: 30px; font-family: '標楷體'; width: 600px; } table tr:nth-child(even), table tr:nth-child(odd) { background-color: #fff; } table tr { font-size: 12pt; width: 100%; } table tr h2 { font-size: 18pt; } table tr td { width: 100%; height: 100%; line-height: 2; display: flex; } table tr td.center { display: flex; justify-content: center; align-items: center; } table tr td.list { width: 100%; height: 100%; white-space: nowrap; display: flex; } table tr td.list span { width: 60px; min-height: 100%; display: block; } table tr td.list > p { display: block; text-align: justify; } table tr td.list div { max-width: calc(100% - 60px); white-space: normal; } table tr td.list div.text-justify { display: flex; width: 100%; justify-content: space-between; } table tr.date td > div { width: 100%; text-align: right; } table tr.date td > div.text-justify { display: flex; justify-content: space-between; } table td, table th { padding: 8px; }`, + data: { + illustrate: { + editshow: false, + plaintext: '茲因甲方向乙方訂購電梯,並委由乙方安裝系爭電梯,經雙方同意共同訂立本合約書,其條款如下:' + }, + partyA: { + editshow: false, + plaintext: partyAcompany, + }, + partyAcontractno: { + editshow: false, + plaintext: partyAcontractno, + }, + list: { + plaintext: [ + { + editshow: false, + origin: true, + text: `安裝產品名稱、數量及單價:
1、 ${people} 人座  ${floor} 停站速度每分鐘 ${speed} 公尺 交流變頻變壓電腦智能控制升降機 ${num} 部。單價:新台幣 ${numberToChinese(totalInstallPrice)} 元整( ${numberWithCommas(totalInstallPrice)} )(含5%加值型營業稅)。`, + type: 'title', + deleted: false, + id: 0, + input_id: null, + }, + { + editshow: false, + origin: true, + text: '安裝產品規格:如附表一。', + type: 'title', + deleted: false, + id: 1, + input_id: null, + }, + { + editshow: false, + origin: true, + text: '安裝地點:' + partyAaddress + '。', + type: 'title', + deleted: false, + id: 2, + input_id: null, + }, + { + editshow: false, + origin: true, + text: `安裝報酬:安裝勞務報酬為新台幣(以下皆同) ${numberToChinese(totalPrice)} 元整(${numberWithCommas(totalPrice)} )(含5%加值型營業稅)。`, + type: 'title', + deleted: false, + id: 3, + input_id: null, + }, + { + editshow: false, + origin: true, + text: install_pay_text, + type: 'title', + deleted: false, + id: 4, + input_id: 'fill1', + }, + { + editshow: false, + origin: true, + text: '安裝試車事項:
一、甲方應於實際出貨日期前七日,清理升降設備之建築物升降道,及完成底坑防水之處理,上述事項完成後,甲方即以書面或電話通知乙方進場安裝,乙方應於貨抵工地後每台__日內安裝完成。
二、甲方接到乙方電梯安裝完成通知之日起,倘因甲方因素致無法於__日內交車時,甲方應付清總價款全部餘額。
三、如因非關乙方因素致乙方無法進場施作時,於該因素或障礙排除前,甲方應對已進場之材料或設備負保管責任及整修費用。', + type: 'title', + deleted: false, + id: 5, + input_id: null, + }, + { + editshow: false, + origin: true, + text: '交車事項:
一、乙方完成產品安裝後,甲方應儘速理交車事宜,不得無故或藉故拖延。如經乙方通知,甲方遲未辦理交車事宜,則於乙方催告後,即視同交車完成。
二、乙方試車完成後,甲方應配合提供建物使用執照及其他竣工檢查所需文件,以利乙方代甲方辦理昇降設備竣工檢查。
三、甲方於昇降設備竣工檢查合格及取得使用許可證後,交車事項即為完成。', + type: 'title', + deleted: false, + id: 6, + input_id: null, + }, + + { + editshow: false, + origin: true, + text: '因故延期:
如因天災、地變及其他不可抗力之因素,或甲方未將電梯昇降路及機械室之建築工程等配合事項未於貨抵工地前七日整理完善,或甲方未將符合規格之電源於安裝前送電至機械室,或房屋建築及其他應配合相關事項未完成,致影響乙方如期安裝產品時,乙方安裝日期應依受影響日數向後延展,如因可歸責於甲方事由者亦同。', + type: 'title', + deleted: false, + id: 7, + input_id: null, + }, + { + editshow: false, + origin: true, + text: '工程變更:
甲方對本工程之規格有變更設計及增減工程數量時,應於合約訂立日後壹個月內預先以書面通知乙方且需經雙方同意,如因工程變更而致乙方成本增加時,則甲方應吸收所有增加之成本並追認給付給乙方,否則乙方依原合約之貨品規格、數量交貨,甲方亦應依原合約之貨品規格、數量給付款項。', + type: 'title', + deleted: false, + id: 8, + input_id: null, + }, + { + editshow: false, + origin: true, + text: '工地清理及除外事項:
一、本工程於貨到現場前,其工地廢料雜物及臨時設備,應由甲方清除整理,同時提供乙方放置貨品之處所。
二、有關建築工事回填澆灌後之清潔,應由甲方負責清理。
三、升降設備除外工程表所列之各項工程不包括於乙方本合約施作範圍,應由甲方負責處理。', + type: 'title', + deleted: false, + id: 9, + input_id: null, + }, + { + editshow: false, + origin: true, + text: '電梯保養:
一、乙方完工交車後,期後__個月內應負責免費定期保養,及履行免費保固,於免費保養期間屆至後,雙方再協商嗣後保養事宜。
二、如因可歸責乙方因素致安裝產品有所瑕疵時,乙方應負責修復或修繕,惟非因乙方因素致有修復產品需要時,乙方仍負責修復或修繕,惟得向甲方酌收基本材料與人工費用。
三、另依法令規定,非經竣工檢查合格後取得使用許可證之電梯,依法不得使用。', + type: 'title', + deleted: false, + id: 10, + input_id: null, + }, + { + editshow: false, + origin: true, + text: '特約條款:
一、本設備器材在款項未付清前,其所有權仍歸屬乙方所有,價款付清後所有權始轉移給甲方。
二、如因甲方因素或建物設計上之疏忽,致影響驗收時,甲方不得以此做為逾期或拒付款之藉口。
三、本合約所有日數約定,均以工作天計算。', + type: 'title', + deleted: false, + id: 11, + input_id: null, + }, + { + editshow: false, + origin: true, + text: '終止合約權:
一、甲乙雙方之任一方若有違反合約之事實或發生清算或破產等信用貶落情形,致工程無法進行時,經催告而未改善者,他方得終止本合約,違約方必須賠償對方之損失。
二、乙方逾期交貨或甲方逾期未交付工地受領產品逾壹個月以上經他方催告仍不改善,他方得終止本合約,並請求損害賠償。', + type: 'title', + deleted: false, + id: 12, + input_id: null, + }, + { + editshow: false, + origin: true, + text: '合意管轄:
因本合約而涉訟,甲、乙方雙方同意以桃園地方法院為第一審管轄法院。催告仍不改善,他方得終止本合約,並請求損害賠償。', + type: 'title', + deleted: false, + id: 13, + input_id: null, + }, + { + editshow: false, + origin: true, + text: '附則:
本合約經甲、乙雙方簽章後立即生效,甲、乙雙方各存執正副本各壹份為憑,印花雙方各自貼付。', + type: 'title', + deleted: false, + id: 14, + input_id: null, + }, + { + editshow: false, + origin: true, + text: '合約附件:
本合約附件為本合約之一部份,與本合約具同等效力,甲乙雙方均應遵守之。', + type: 'title', + deleted: false, + id: 15, + input_id: null, + }, + ] + } + }, + buydata: { + illustrate: { + editshow: false, + plaintext: '茲因甲方向乙方訂購電梯,經雙方同意共同訂立本合約書,其條款如下:' + }, + partyA: { + editshow: false, + plaintext: partyAcompany, + }, + partyAcontractno: { + editshow: false, + plaintext: partyAcontractno, + }, + list: { + plaintext: [ + { + editshow: false, + origin: true, + text: `產品名稱、數量及單價:
1、 ${people} 人座 ${floor} 停站速度每分鐘 ${speed} 公尺 交流變頻變壓電腦智能控制升降機 ${bigChineseArr[num]} 部。單價:新台幣 ${numberToChinese(totalBuyPrice)} 元整( ${numberWithCommas(totalBuyPrice)} )(含5%加值型營業稅)。`, + type: 'title', + deleted: false, + id: 0, + input_id: null, + }, + { + editshow: false, + origin: true, + text: '產品規格:如附表一。', + type: 'title', + deleted: false, + id: 1, + input_id: null, + }, + { + editshow: false, + origin: true, + text: '交貨及安裝地點:' + partyAaddress + '。', + type: 'title', + deleted: false, + id: 2, + input_id: null, + }, + { + editshow: false, + origin: true, + text: `產品總價:產品價金為新台幣 ${numberToChinese(totalBuyPrice)} 元整( ${numberWithCommas(totalBuyPrice)} )(含5%加值型營業稅)。`, + type: 'title', + deleted: false, + id: 3, + input_id: null, + }, + { + editshow: false, + origin: true, + text: buy_pay_text, + type: 'title', + deleted: false, + id: 4, + input_id: 'buyfill1', + }, + { + editshow: false, + origin: true, + text: '交貨期限及甲方配合事項:
乙方應於接獲甲方圖色確認第180日(應於合約簽訂日起兩年內),將本工程所需之全部設備、器材 運抵工地,甲方應提供適當的場所供乙方貯放設備、器材。', + type: 'title', + deleted: false, + id: 5, + input_id: null, + }, + { + editshow: false, + origin: true, + text: '施工規範依據:
甲方或其指定工程師,於本契約簽訂後二星期內,提供組立電梯之大樓建築有關圖面,以供乙方製作電梯配置圖,乙方製妥電梯配置圖後請甲方簽認,甲方於接獲乙方提請審核之電梯配置圖後,一星期內簽認並送還乙方,乙方應於接獲甲方簽認之電梯配置圖後,安排電梯組件之生產並按預定時間內製造完成。', + type: 'title', + deleted: false, + id: 6, + input_id: null, + }, + + { + editshow: false, + origin: true, + text: '因故延期:
一、如因天災、地變及其他不可抗力之因素,致影響乙方如期交付產品時,本合約第六條之交貨日期應依受影響日數向後延展,如因可歸責於甲方事由者亦同。
二、如因可歸責甲方事由致工期展延逾第六條日期時,如因物價波動致成本增加,乙方得請求物價調漲之補償,或終止合約。', + type: 'title', + deleted: false, + id: 7, + input_id: null, + }, + { + editshow: false, + origin: true, + text: '工程變更:
甲方對本工程之規格有變更設計及增減工程數量時,應於合約訂立日後壹個月內預先以書面通知乙方且需經雙方同意,如因工程變更而致乙方成本增加時,則甲方應吸收所有增加之成本並追認給付給乙方,否則乙方依原合約之貨品規格、數量交貨,甲方亦應依原合約之貨品規格、數量給付款項。', + type: 'title', + deleted: false, + id: 8, + input_id: null, + }, + { + editshow: false, + origin: true, + text: '工地清理及除外事項:
一、本工程於貨到現場前,其工地廢料雜物及臨時設備,應由甲方清除整理,同時提供乙方放置貨品之處所。
二、有關建築工事回填澆灌後之清潔,應由甲方負責清理。', + type: 'title', + deleted: false, + id: 9, + input_id: null, + }, + { + editshow: false, + origin: true, + text: '合約時效:
本合約及其附件自簽訂之日起,至保固期滿之日止為有效期間。', + type: 'title', + deleted: false, + id: 10, + input_id: null, + }, + { + editshow: false, + origin: true, + text: '特約條款:
一、本設備器材在款項未付清前,其所有權仍歸屬乙方所有,價款付清後所有權始轉移給甲方。
二、如因甲方因素或建物設計上之疏忽,致影響驗收時,甲方不得以此做為逾期或拒付款之藉口。
三、本合約所有日數約定,均以工作天計算。', + type: 'title', + deleted: false, + id: 11, + input_id: null, + }, + { + editshow: false, + origin: true, + text: '終止合約權:
一、甲乙雙方之任一方若有違反合約之事實或發生清算或破產等信用貶落情形,致工程無法進行時,經催告而未改善者,他方得終止本合約,違約方必須賠償對方之損失。
二、乙方逾期交貨或甲方逾期未交付工地受領產品逾壹個月以上經他方催告仍不改善,他方得終止本合約,並請求損害賠償。', + type: 'title', + deleted: false, + id: 12, + input_id: null, + }, + { + editshow: false, + origin: true, + text: '合意管轄:
因本合約而涉訟,甲、乙方雙方同意以桃園地方法院為第一審管轄法院。', + type: 'title', + deleted: false, + id: 13, + input_id: null, + }, + { + editshow: false, + origin: true, + text: '附則:
本合約經甲、乙雙方簽章後立即生效,甲、乙雙方各存執正本各壹份為憑。', + type: 'title', + deleted: false, + id: 14, + input_id: null, + }, + { + editshow: false, + origin: true, + text: '合約附件:
本合約附件為本合約之一部份,與本合約具同等效力,甲乙雙方均應遵守之,本合約附件計有:', + type: 'title', + deleted: false, + id: 15, + input_id: null, + }, + ] + } + }, + fill: [], + standardData: {}, + onstandardViewData: {}, + deepClone: function (obj) { + let clone = Array.isArray(obj) ? [] : {}; + for (let key in obj) { + if (obj.hasOwnProperty(key)) { + if (typeof obj[key] === 'object' && obj[key] !== null) { + clone[key] = this.deepClone(obj[key]); + if (clone[key].text != undefined) { + // clone[key].text = clone[key].text.replace(/ insert , u=> update + index: 0, + isInstall: true, + chineseNumbers(number) { + const units = ['', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十']; + if (number <= 10) { + return units[number]; + } else if (number < 20) { + return '十' + units[number - 10]; + } else if (number < 30) { + return '二十' + units[number - 20]; + } else if (number < 40) { + return '三十' + units[number - 30]; + } else if (number < 50) { + return '四十' + units[number - 40]; + } else { + return '五十'; + } + }, + mouseover(obj, isInstall = true) { + if (isInstall) { + if (!this.onstandardViewData[obj].editshow) { + this.onstandardViewData[obj].editshow = true + } + } else { + if (!this.buyonstandardViewData[obj].editshow) { + this.buyonstandardViewData[obj].editshow = true + } + } + + }, + mouseoverlist(idx, inInstall = true) { + if (inInstall) { + if (!this.onstandardViewData.list.plaintext[idx].editshow) { + this.onstandardViewData.list.plaintext[idx].editshow = true + } + } else { + if (!this.buyonstandardViewData.list.plaintext[idx].editshow) { + this.buyonstandardViewData.list.plaintext[idx].editshow = true + } + } + + }, + mouseoutlist(idx) { + if (this.onstandardViewData.list.plaintext[idx].editshow) { + this.onstandardViewData.list.plaintext[idx].editshow = false + } + if (this.buyonstandardViewData.list.plaintext[idx].editshow) { + this.buyonstandardViewData.list.plaintext[idx].editshow = false + } + }, + mouseout(obj) { + if (this.onstandardViewData[obj].editshow) { + this.onstandardViewData[obj].editshow = false + } + if (this.buyonstandardViewData[obj].editshow) { + this.buyonstandardViewData[obj].editshow = false + } + }, + modelshowEditFn(text, obj, isList = false, isInstall = true) { + if (this.modelshow) { + return; + } + this.isInstall = isInstall + this.actionType = 'u' + this.modelshow = true + this.modelText = text + this.objName = obj + this.isList = isList + this.actionType = 'u' + if (isInstall) { + if (isList) { + this.$refs.editor.value = this.onstandardViewData.list.plaintext[obj].text + // CKEDITOR.instances.editor.setData(this.onstandardViewData.list.plaintext[obj].text); + return + } + if (!isList) { + this.$refs.editor.value = this.onstandardViewData[obj].plaintext + // CKEDITOR.instances.editor.setData(this.onstandardViewData[obj].plaintext); + return + } + } else { + if (isList) { + this.$refs.editor.value = this.buyonstandardViewData.list.plaintext[obj].text + // CKEDITOR.instances.editor.setData(this.buyonstandardViewData.list.plaintext[obj].text); + return + } + if (!isList) { + this.$refs.editor.value = this.buyonstandardViewData[obj].plaintext + // CKEDITOR.instances.editor.setData(this.buyonstandardViewData[obj].plaintext); + return + } + } + + }, + modelcloseFn() { + if (this.modelshow) { + this.modelshow = false + this.modelText = '' + this.modelContent = '' + this.isList = false + this.$refs.editor.value = '' + // CKEDITOR.instances.editor.setData('') + } + }, + modelshowAddUpFn(idx, isInstall = true) { + this.isInstall = isInstall + this.index = idx + this.actionType = 'i' + this.modelshow = true + this.modelText = '新增一條例' + }, + modelshowAddDownFn(idx, isInstall = true) { + this.isInstall = isInstall + this.index = idx + 1 + this.actionType = 'i' + this.modelshow = true + this.modelText = '新增一條例' + }, + updateEditor() { + let max = 0; + if (this.isInstall) { + this.onstandardViewData.list.plaintext.forEach(item => { + if (item.id > max) { + max = item.id + }; + }) + } else { + this.buyonstandardViewData.list.plaintext.forEach(item => { + if (item.id > max) { + max = item.id + }; + }) + } + + max = max + 1 + if (this.actionType == 'i') { + let newObj = { + editshow: false, + origin: false, + text: this.removeTrailingNewline(this.$refs.editor.value), + // text:this.removeTrailingNewline(this.convertHtmlToPlainText(this.$refs.editor.value)), + // text:this.removeTrailingNewline(this.convertHtmlToPlainText(CKEDITOR.instances.editor.getData())), + type: 'title', + deleted: false, + id: max, + } + if (this.isInstall) { + this.data.list.plaintext.splice(this.index, 0, newObj) + this.onstandardViewData.list.plaintext.splice(this.index, 0, newObj) + } else { + this.buydata.list.plaintext.splice(this.index, 0, newObj) + this.buyonstandardViewData.list.plaintext.splice(this.index, 0, newObj) + } + this.modelcloseFn() + return + } + if (this.actionType == 'u') { + if (this.isInstall) { + if (this.isList) { + // this.data.list.plaintext[this.objName].text = this.convertHtmlToPlainText(CKEDITOR.instances.editor.getData()) + this.data.list.plaintext[this.objName].text = this.convertHtmlToPlainText(this.$refs.editor.value) + // this.onstandardViewData.list.plaintext[this.objName].text = this.convertHtmlToPlainText(CKEDITOR.instances.editor.getData()) + // this.onstandardViewData.list.plaintext[this.objName].text = this.convertHtmlToPlainText(this.$refs.editor.value) + this.onstandardViewData.list.plaintext[this.objName].text = this.$refs.editor.value + } else { + // this.data[this.objName].plaintext = this.convertHtmlToPlainText(CKEDITOR.instances.editor.getData()) + this.data[this.objName].plaintext = this.convertHtmlToPlainText(this.$refs.editor.value) + // this.onstandardViewData[this.objName].plaintext = this.convertHtmlToPlainText(CKEDITOR.instances.editor.getData()) + // this.onstandardViewData[this.objName].plaintext = this.convertHtmlToPlainText(this.$refs.editor.value) + this.onstandardViewData[this.objName].plaintext = this.$refs.editor.value + } + } else { + if (this.isList) { + this.buydata.list.plaintext[this.objName].text = this.convertHtmlToPlainText(this.$refs.editor.value) + this.buyonstandardViewData.list.plaintext[this.objName].text = this.$refs.editor.value + } else { + this.buydata[this.objName].plaintext = this.convertHtmlToPlainText(this.$refs.editor.value) + this.buyonstandardViewData[this.objName].plaintext = this.$refs.editor.value + } + } + } + this.modelcloseFn() + return + }, + deleteEditor(idx, isInstall = true) { + if (isInstall) { + if (confirm('確定要刪除嗎?')) { + let id = this.onstandardViewData.list.plaintext[idx].id + this.data.list.plaintext.forEach(item => { + if (item.id == id) { + item.deleted = 1; + } + }) + this.onstandardViewData.list.plaintext.splice(idx, 1) + } + } else { + if (confirm('確定要刪除嗎?')) { + let id = this.buyonstandardViewData.list.plaintext[idx].id + // this.buydata.list.plaintext[idx].deleted = 1 + this.buydata.list.plaintext.forEach(item => { + if (item.id == id) { + if (!item.deleted) { + item.deleted = 1; + } + } + }) + this.buyonstandardViewData.list.plaintext.splice(idx, 1) + } + } + }, + removeTrailingNewline(str) { + return str.replace(/\n+$/, ''); + }, + convertHtmlToPlainText(htmlString) { + // 創建一個新的DOMParser對象 + var parser = new DOMParser(); + + // 使用parseFromString方法解析傳入的HTML字符串 + var doc = parser.parseFromString(htmlString, 'text/html'); + + // 返回解析後的純文本內容 + return doc.body.textContent || ''; + }, + exportFn(type) { + const form = this.$refs.form + const prviewType = this.$refs.form.querySelector('#prview-type'); + const list = this.$refs.form.querySelector('#prview-list'); + const standardList = this.$refs.form.querySelector('#standard-prview-list'); + const illustrate = this.$refs.form.querySelector('#illustrate'); + const standardIllustrate = this.$refs.form.querySelector('#standard-illustrate'); + const partyA = this.$refs.form.querySelector('#partyA'); + const partyAcontractno = this.$refs.form.querySelector('#partyAcontractno'); + const total_price = this.$refs.form.querySelector('#total_price'); + prviewType.value = type + if (type === 1) { + const standardJsonText = this.buystandardData.list.plaintext.map((item, idx) => { + let text = '' + text = item.text.replace(/\s+/g, "") + this.buydata.list.plaintext[idx].text = this.buydata.list.plaintext[idx].text.replace(/\s+/g, "") + + return { + text: text, + id: item.id + } + }); + const jsonText = this.buydata.list.plaintext.map(item => { + let text = '' + text = item.text + return { + text: text, + origin: item.origin ? 1 : 0, + deleted: item.deleted ? 1 : 0, + id: item.id, + updated: item.updated ? 1 : 0, + } + }); + list.value = JSON.stringify(jsonText) + standardList.value = JSON.stringify(standardJsonText) + illustrate.value = this.buydata.illustrate.plaintext + standardIllustrate.value = this.buystandardData.illustrate.plaintext + partyA.value = this.buydata.partyA.plaintext + partyAcontractno.value = this.buydata.partyAcontractno.plaintext + total_price.value = totalBuyPrice + form.submit(); + return; + } + if (type === 2) { + // list.value = JSON.stringify(this.data.list.plaintext) + const standardJsonText = this.standardData.list.plaintext.map((item, idx) => { + let text = '' + text = item.text.replace(/\s+/g, "") + if (this.data.list.plaintext[idx] !== undefined) { + this.data.list.plaintext[idx].text = this.data.list.plaintext[idx].text.replace(/\s+/g, "") + } + return { + text: text, + id: item.id + } + }) + const jsonText = this.data.list.plaintext.map(item => { + let text = '' + item.text + text = item.text + return { + text: text, + origin: item.origin ? 1 : 0, + deleted: item.deleted ? 1 : 0, + id: item.id, + updated: item.updated ? 1 : 0, + } + }) + list.value = JSON.stringify(jsonText) + standardList.value = JSON.stringify(standardJsonText) + illustrate.value = this.data.illustrate.plaintext + standardIllustrate.value = this.standardData.illustrate.plaintext + partyA.value = this.data.partyA.plaintext + partyAcontractno.value = this.data.partyAcontractno.plaintext + total_price.value = totalInstallPrice + form.submit(); + + return; + } + }, + toggleBuyStandard: true, + toggleInstallStandard: true, + isbuyShow: true, + sendInstallInputFn() { + if (this.installfill1 == '') { + alert('請輸入安裝試車期限'); + return; + } + if (this.installfill2 == '') { + alert('請輸入免費保養月數'); + return; + } + if (this.installfill1 < 45) { + alert('安裝試車期限不得低於45日'); + return; + } + if (this.installfill1 < 1) { + alert('免費保養月數不得低於1個月'); + return; + } + this.isInstallInputIng = false + this.data.list.plaintext[1].text = '安裝產品規格:如附表' + this.affixArr[Number(this.installAffix)] + '。' + this.standardData.list.plaintext[1].text = '安裝產品規格:如附表' + this.affixArr[Number(this.installAffix)] + '。' + this.onstandardViewData.list.plaintext[1].text = '安裝產品規格:如附表' + this.affixArr[Number(this.installAffix)] + '。' + this.data.list.plaintext[5].text = '安裝試車事項:
一、甲方應於實際出貨日期前七日,清理升降設備之建築物升降道,及完成底坑防水之處理,上述事項完成後,甲方即以書面或電話通知乙方進場安裝,乙方應於貨抵工地後每台 ' + this.installfill1 + ' 日內安裝完成。
二、甲方接到乙方電梯安裝完成通知之日起,倘因甲方因素致無法於四十五日內交車時,甲方應付清總價款全部餘額。
三、如因非關乙方因素致乙方無法進場施作時,於該因素或障礙排除前,甲方應對已進場之材料或設備負保管責任及整修費用。' + this.standardData.list.plaintext[5].text = '安裝試車事項:
一、甲方應於實際出貨日期前七日,清理升降設備之建築物升降道,及完成底坑防水之處理,上述事項完成後,甲方即以書面或電話通知乙方進場安裝,乙方應於貨抵工地後每台 ' + this.installfill1 + ' 日內安裝完成。
二、甲方接到乙方電梯安裝完成通知之日起,倘因甲方因素致無法於四十五日內交車時,甲方應付清總價款全部餘額。
三、如因非關乙方因素致乙方無法進場施作時,於該因素或障礙排除前,甲方應對已進場之材料或設備負保管責任及整修費用。' + this.onstandardViewData.list.plaintext[5].text = '安裝試車事項:
一、甲方應於實際出貨日期前七日,清理升降設備之建築物升降道,及完成底坑防水之處理,上述事項完成後,甲方即以書面或電話通知乙方進場安裝,乙方應於貨抵工地後每台 ' + this.installfill1 + ' 日內安裝完成。
二、甲方接到乙方電梯安裝完成通知之日起,倘因甲方因素致無法於四十五日內交車時,甲方應付清總價款全部餘額。
三、如因非關乙方因素致乙方無法進場施作時,於該因素或障礙排除前,甲方應對已進場之材料或設備負保管責任及整修費用。' + this.data.list.plaintext[10].text = '電梯保養:
一、乙方完工交車後,期後 ' + this.installfill2 + ' 個月內應負責免費定期保養,及履行免費保固,於免費保養期間屆至後,雙方再協商嗣後保養事宜。
二、如因可歸責乙方因素致安裝產品有所瑕疵時,乙方應負責修復或修繕,惟非因乙方因素致有修復產品需要時,乙方仍負責修復或修繕,惟得向甲方酌收基本材料與人工費用。
三、另依法令規定,非經竣工檢查合格後取得使用許可證之電梯,依法不得使用。' + this.standardData.list.plaintext[10].text = '電梯保養:
一、乙方完工交車後,期後 ' + this.installfill2 + ' 個月內應負責免費定期保養,及履行免費保固,於免費保養期間屆至後,雙方再協商嗣後保養事宜。
二、如因可歸責乙方因素致安裝產品有所瑕疵時,乙方應負責修復或修繕,惟非因乙方因素致有修復產品需要時,乙方仍負責修復或修繕,惟得向甲方酌收基本材料與人工費用。
三、另依法令規定,非經竣工檢查合格後取得使用許可證之電梯,依法不得使用。' + this.onstandardViewData.list.plaintext[10].text = '電梯保養:
一、乙方完工交車後,期後 ' + this.installfill2 + ' 個月內應負責免費定期保養,及履行免費保固,於免費保養期間屆至後,雙方再協商嗣後保養事宜。
二、如因可歸責乙方因素致安裝產品有所瑕疵時,乙方應負責修復或修繕,惟非因乙方因素致有修復產品需要時,乙方仍負責修復或修繕,惟得向甲方酌收基本材料與人工費用。
三、另依法令規定,非經竣工檢查合格後取得使用許可證之電梯,依法不得使用。' + }, + sendInstallInputKeyupFn(e) { + if (e.keyCode !== 13) return + if (this.installfill1 == '') { + alert('請輸入安裝試車期限'); + return; + } + if (this.installfill2 == '') { + alert('請輸入免費保養月數'); + return; + } + if (this.installfill1 < 45) { + alert('安裝試車期限不得低於45日'); + return; + } + if (this.installfill1 < 1) { + alert('免費保養月數不得低於1個月'); + return; + } + this.isInstallInputIng = false + this.data.list.plaintext[1].text = '安裝產品規格:如附表' + this.affixArr[Number(this.installAffix)] + '。' + this.standardData.list.plaintext[1].text = '安裝產品規格:如附表' + this.affixArr[Number(this.installAffix)] + '。' + this.onstandardViewData.list.plaintext[1].text = '安裝產品規格:如附表' + this.affixArr[Number(this.installAffix)] + '。' + this.data.list.plaintext[5].text = '安裝試車事項:
一、甲方應於實際出貨日期前七日,清理升降設備之建築物升降道,及完成底坑防水之處理,上述事項完成後,甲方即以書面或電話通知乙方進場安裝,乙方應於貨抵工地後每台 ' + this.installfill1 + ' 日內安裝完成。
二、甲方接到乙方電梯安裝完成通知之日起,倘因甲方因素致無法於四十五日內交車時,甲方應付清總價款全部餘額。
三、如因非關乙方因素致乙方無法進場施作時,於該因素或障礙排除前,甲方應對已進場之材料或設備負保管責任及整修費用。' + this.standardData.list.plaintext[5].text = '安裝試車事項:
一、甲方應於實際出貨日期前七日,清理升降設備之建築物升降道,及完成底坑防水之處理,上述事項完成後,甲方即以書面或電話通知乙方進場安裝,乙方應於貨抵工地後每台 ' + this.installfill1 + ' 日內安裝完成。
二、甲方接到乙方電梯安裝完成通知之日起,倘因甲方因素致無法於四十五日內交車時,甲方應付清總價款全部餘額。
三、如因非關乙方因素致乙方無法進場施作時,於該因素或障礙排除前,甲方應對已進場之材料或設備負保管責任及整修費用。' + this.onstandardViewData.list.plaintext[5].text = '安裝試車事項:
一、甲方應於實際出貨日期前七日,清理升降設備之建築物升降道,及完成底坑防水之處理,上述事項完成後,甲方即以書面或電話通知乙方進場安裝,乙方應於貨抵工地後每台 ' + this.installfill1 + ' 日內安裝完成。
二、甲方接到乙方電梯安裝完成通知之日起,倘因甲方因素致無法於四十五日內交車時,甲方應付清總價款全部餘額。
三、如因非關乙方因素致乙方無法進場施作時,於該因素或障礙排除前,甲方應對已進場之材料或設備負保管責任及整修費用。' + this.data.list.plaintext[10].text = '電梯保養:
一、乙方完工交車後,期後 ' + this.installfill2 + ' 個月內應負責免費定期保養,及履行免費保固,於免費保養期間屆至後,雙方再協商嗣後保養事宜。
二、如因可歸責乙方因素致安裝產品有所瑕疵時,乙方應負責修復或修繕,惟非因乙方因素致有修復產品需要時,乙方仍負責修復或修繕,惟得向甲方酌收基本材料與人工費用。
三、另依法令規定,非經竣工檢查合格後取得使用許可證之電梯,依法不得使用。' + this.standardData.list.plaintext[10].text = '電梯保養:
一、乙方完工交車後,期後 ' + this.installfill2 + ' 個月內應負責免費定期保養,及履行免費保固,於免費保養期間屆至後,雙方再協商嗣後保養事宜。
二、如因可歸責乙方因素致安裝產品有所瑕疵時,乙方應負責修復或修繕,惟非因乙方因素致有修復產品需要時,乙方仍負責修復或修繕,惟得向甲方酌收基本材料與人工費用。
三、另依法令規定,非經竣工檢查合格後取得使用許可證之電梯,依法不得使用。' + this.onstandardViewData.list.plaintext[10].text = '電梯保養:
一、乙方完工交車後,期後 ' + this.installfill2 + ' 個月內應負責免費定期保養,及履行免費保固,於免費保養期間屆至後,雙方再協商嗣後保養事宜。
二、如因可歸責乙方因素致安裝產品有所瑕疵時,乙方應負責修復或修繕,惟非因乙方因素致有修復產品需要時,乙方仍負責修復或修繕,惟得向甲方酌收基本材料與人工費用。
三、另依法令規定,非經竣工檢查合格後取得使用許可證之電梯,依法不得使用。' + }, + sendBuyInputFn() { + if (this.buyfill1 == '') { + alert('請輸入交貨期限'); + return; + } + if (this.buyfill1 < 1) { + alert('交貨期限不得低於1日'); + return; + } + if (buyArr[1].installment == 2) { + this.buydata.list.plaintext[4].text = this.buydata.list.plaintext[4].text.replace('____', this.buyfill2); + this.buystandardData.list.plaintext[4].text = this.buydata.list.plaintext[4].text.replace('____', this.buyfill2); + this.buyonstandardViewData.list.plaintext[4].text = this.buydata.list.plaintext[4].text.replace('____', this.buyfill2); + } + this.isBuyInputIng = false + this.buydata.list.plaintext[1].text = '產品規格:如附表' + this.affixArr[Number(this.buyAffix)] + '。' + this.buystandardData.list.plaintext[1].text = '產品規格:如附表' + this.affixArr[Number(this.buyAffix)] + '。' + this.buyonstandardViewData.list.plaintext[1].text = '產品規格:如附表' + this.affixArr[Number(this.buyAffix)] + '。' + this.buydata.list.plaintext[5].text = '交貨期限及甲方配合事項:
乙方應於接獲甲方圖色確認第 ' + this.buyfill1 + ' 日(應於合約簽訂日起兩年內),將本工程所需之全部設備、器材 運抵工地,甲方應提供適當的場所供乙方貯放設備、器材。' + this.buystandardData.list.plaintext[5].text = '交貨期限及甲方配合事項:
乙方應於接獲甲方圖色確認第 ' + this.buyfill1 + ' 日(應於合約簽訂日起兩年內),將本工程所需之全部設備、器材 運抵工地,甲方應提供適當的場所供乙方貯放設備、器材。' + this.buyonstandardViewData.list.plaintext[5].text = '交貨期限及甲方配合事項:
乙方應於接獲甲方圖色確認第 ' + this.buyfill1 + ' 日(應於合約簽訂日起兩年內),將本工程所需之全部設備、器材 運抵工地,甲方應提供適當的場所供乙方貯放設備、器材。' + let buyAffixHtml = '' + for (let i = 0; i < Number(this.buyAffix); i++) { + buyAffixHtml += `
${numberToSmallChinese(i + 1)}、附表${numberToSmallChinese(i + 1)}                                                       共 1 張` + } + this.buydata.list.plaintext[15].text = this.buydata.list.plaintext[15].text + buyAffixHtml + this.buystandardData.list.plaintext[15].text = this.buystandardData.list.plaintext[15].text + buyAffixHtml + this.buyonstandardViewData.list.plaintext[15].text = this.buyonstandardViewData.list.plaintext[15].text + buyAffixHtml + }, + sendBuyInputKeyupFn(e) { + if (e.keyCode !== 13) return + if (this.buyfill1 == '') { + alert('請輸入交貨期限'); + return; + } + if (this.buyfill1 < 1) { + alert('交貨期限不得低於1日'); + return; + } + if (buyArr[1].installment == 2) { + this.buydata.list.plaintext[4].text = this.buydata.list.plaintext[4].text.replace('____', this.buyfill2); + this.buystandardData.list.plaintext[4].text = this.buydata.list.plaintext[4].text.replace('____', this.buyfill2); + this.buyonstandardViewData.list.plaintext[4].text = this.buydata.list.plaintext[4].text.replace('____', this.buyfill2); + } + this.isBuyInputIng = false + this.buydata.list.plaintext[1].text = '產品規格:如附表' + this.affixArr[Number(this.buyAffix)] + '。' + this.buystandardData.list.plaintext[1].text = '產品規格:如附表' + this.affixArr[Number(this.buyAffix)] + '。' + this.buyonstandardViewData.list.plaintext[1].text = '產品規格:如附表' + this.affixArr[Number(this.buyAffix)] + '。' + this.buydata.list.plaintext[5].text = '交貨期限及甲方配合事項:
乙方應於接獲甲方圖色確認第 ' + this.buyfill1 + ' 日(應於合約簽訂日起兩年內),將本工程所需之全部設備、器材 運抵工地,甲方應提供適當的場所供乙方貯放設備、器材。' + this.buystandardData.list.plaintext[5].text = '交貨期限及甲方配合事項:
乙方應於接獲甲方圖色確認第 ' + this.buyfill1 + ' 日(應於合約簽訂日起兩年內),將本工程所需之全部設備、器材 運抵工地,甲方應提供適當的場所供乙方貯放設備、器材。' + this.buyonstandardViewData.list.plaintext[5].text = '交貨期限及甲方配合事項:
乙方應於接獲甲方圖色確認第 ' + this.buyfill1 + ' 日(應於合約簽訂日起兩年內),將本工程所需之全部設備、器材 運抵工地,甲方應提供適當的場所供乙方貯放設備、器材。' + let buyAffixHtml = '' + for (let i = 0; i < Number(this.buyAffix); i++) { + buyAffixHtml += `
${numberToSmallChinese(i + 1)}、附表${numberToSmallChinese(i + 1)}                                                       共 1 張` + } + this.buydata.list.plaintext[15].text = this.buydata.list.plaintext[15].text + buyAffixHtml + this.buystandardData.list.plaintext[15].text = this.buystandardData.list.plaintext[15].text + buyAffixHtml + this.buyonstandardViewData.list.plaintext[15].text = this.buyonstandardViewData.list.plaintext[15].text + buyAffixHtml + }, + affixArr: ['', '一', '一、二', '一、二、三', '一、二、三、四', '一、二、三、四、五'], + isBuyInputIng: true, + isInstallInputIng: true, + } +}; + +const contractNewInput = () => { + return { + init() { }, + data: { + contractno: '', + customer: '', + manager: '', + vat: '', + case_name: '', + linkman: '', + lm_tel: '', + address: '', + salesman: '', + qc: '', + qc: '', + // files:[], + }, + step: 1, + isLoading: false, + customize: false, + nextStepFn() { + if (this.data.contractno == '') return alert('合約號為必填') + this.isLoading = true + if (this.step == 1) { + this.getContractDate(); + } + }, + nextStepKeyupFn(e) { + if (e.keyCode != 13) return + if (this.step == 1) { + this.getContractDate(); + console.log(this.step); + } + }, + preStepFn() { + if (this.step == 2) { + this.step = 1 + } + }, + getContractDate() { + axios.get('./api/getContractData.php?contracttype=m&contractno=' + this.data.contractno).then(res => { + if (!res.data) { + this.step = 2 + this.isLoading = false + return + } + if (!this.customize) { + console.log(res.data); + this.data.customer = res.data.customer + this.data.manager = res.data.manager + this.data.vat = res.data.uscc + this.data.case_name = res.data.case_name + this.data.linkman = res.data.linkman + this.data.lm_tel = res.data.lm_tel + this.data.address = res.data.address + this.data.salesman = res.data.salesman + this.data.qc = res.data.qc + } + this.step = 2 + this.isLoading = false + }).catch(err => { + console.error(err) + this.isLoading = false + }) + }, + save() { + this.isLoading = true + const form = new FormData(); + form.append('contractno', this.data.contractno); + form.append('customer', this.data.customer); + form.append('manager', this.data.manager); + form.append('vat', this.data.vat); + form.append('case_name', this.data.case_name); + form.append('linkman', this.data.linkman); + form.append('lm_tel', this.data.lm_tel); + form.append('address', this.data.address); + form.append('salesman', this.data.salesman); + form.append('qc', this.data.qc); + form.append('contracttype', 'm'); + form.append('user_id', user_id); + for (var i = 0; i < this.data.files.length; i++) { + form.append('files[]', this.data.files[i]); + } + axios.post('./api/postNewContractData.php', form).then(res => { + console.log(res); + if (res.status === 201) { + alert('儲存成功'); + this.step = 1 + this.data.contractno = '' + this.data.customer = '' + this.data.manager = '' + this.data.vat = '' + this.data.case_name = '' + this.data.linkman = '' + this.data.lm_tel = '' + this.data.address = '' + this.data.salesman = '' + this.data.qc = '' + this.data.files = [] + this.customize = false + + } else { + alert('儲存失敗!可能為以下錯誤:\n' + res.data) + } + this.isLoading = false + }).catch(error => { + let code = error.response.status; + if (code == 422) { + this.fail_arr = error.response.data + this.errorFn(); + } + if (code == 500) { + alert('儲存失敗!可能為以下錯誤:\n' + error.response.data) + } + + this.isLoading = false + }) + }, + errorFn() { + let msg = '' + for (let i = 0; i < this.fail_arr.length; i++) { + msg += this.fail_arr[i] + '、' + } + alert(msg) + }, + uploadFiles(e) { + this.data.files = e.target.files + }, + } +}; + +////////////////////////////// +//// 合約簽回(修理) +//// +//// 製作人:梓誠 +/// 時間 : +////////////////////////////// +const contractRepair = () => { + return { + init() { }, + data: { + contractno: '', + company: '', + repairer: '', + repaireid: '', + facilityno: '', + taxid: '', + invoice: '', //發票抬頭 + type: '', //工程類別需新增,用 post + address: '', + repair_no: '', + total_price: '', + sign_date: '', + contract_status: '' + }, + step: 1, + isLoading: false, + customize: false, + + + nextStepFn() { + if (this.data.contractno == '') return alert('合約號為必填') + this.isLoading = true + if (this.step == 1) { + this.getContractDate(); + } + }, + nextStepKeyupFn(e) { + if (e.keyCode != 13) return + if (this.step == 1) { + this.getContractDate(); + console.log(this.step); + } + }, + // 抓資料 + getContractDate() { + axios.get('./api/getContractData.php?contracttype=r&repair_no=' + this.data.repair_no).then(res => { + if (!res.data) { + this.step = 2; + this.isLoading = false; + // console.log(123); + return + } + if (!this.customize) { + // console.log(res.data); + this.data.contractno = res.data.contractno; + this.data.company = res.data.company; + this.data.repairer = res.data.name; + this.data.facilityno = res.data.facilityno; + this.data.taxid = res.data.taxid; + this.data.invoice = res.data.invoice; + this.data.address = res.data.address; + this.data.repair_no = res.data.repair_no; + this.data.total_price = res.data.total_price; + this.data.repaireid = res.data.repairerid; + this.data.sign_date = res.data.sign_date; + this.data.contract_status = res.data.contract_status; + } + this.step = 2; + this.isLoading = false; + // console.log(user_name); + // console.log(this.data.sign_date); + }).catch(err => { + console.log(err); + alert(err.response.data); + this.isLoading = false + }) + }, + preStepFn() { + if (this.step == 2) { + if (confirm('回到上一頁會初始化資料,確定要返回嗎?')) { + this.step = 1; + this.data.contractno = ''; + this.data.company = ''; + this.data.repairer = ''; + this.data.facilityno = ''; + this.data.taxid = ''; + this.data.invoice = ''; + this.data.address = ''; + this.data.repair_no = ''; + this.data.total_price = ''; + this.data.repaireid = ''; + this.data.sign_date = ''; + this.data.contract_status = ''; + + return; + } + } + }, + save() { + this.isLoading = true; + const form = new FormData(); + form.append('contractno', this.data.contractno); + form.append('company', this.data.company); + form.append('repairid', this.data.repaireid); + form.append('facilityno', this.data.facilityno); + form.append('taxid', this.data.taxid); + form.append('invoice', this.data.invoice); + form.append('address', this.data.address); + form.append('repair_no', this.data.repair_no); + form.append('total_price', this.data.total_price); + form.append('sign_date', this.data.sign_date); + form.append('contract_status', this.data.contract_status); + form.append('contracttype', 'r'); + form.append('user_id', user_id); + form.append('type', this.data.type); + axios.post('./api/postContractData.php', form).then(res => { + console.log(res.status); + if (res.status === 200) { + alert('儲存成功'); + this.step = 1; + this.data.contractno = ''; + this.data.company = ''; + this.data.repaireid = ''; + this.data.facilityno = ''; + this.data.repairer = ''; + this.data.taxid = ''; + this.data.invoice = ''; + this.data.address = ''; + this.data.repair_no = ''; + this.data.total_price = ''; + this.data.user_id = ''; + this.data.type = ''; + this.data.sign_date = ''; + this.data.contract_status = ''; + } + this.isLoading = false; + }).catch(error => { + let code = error.response.status; + if (code == 422) { + this.fail_arr = error.response.data; + this.errorFn(); + console.log(error.response.data); + } + if (code == 500) { + alert('儲存失敗!可能為以下錯誤:\n' + error.response.data); + } + + this.isLoading = false; + }) + }, + errorFn() { + let msg = ''; + for (let i = 0; i < this.fail_arr.length; i++) { + msg += this.fail_arr[i] + '、'; + } + alert(msg); + }, + uploadFiles(e) { + this.data.files = e.target.files; + } + + } +}; + +const contractInput = () => { + return { + init() { + $('.contract-input-component .form .dropdown').dropdown(); + + axios.get('./twzip.json').then(res => { + this.cities = res.data.cities + }) + }, + cities: [], + data: { + contractno: 'B23100060', + total_price: '', //合約總價 + vat: '', //統一編號 + mtype: 'A', //維修型態 + phone: '', //客戶電話 + email: '', //Email + mworker: '', //保養員 + mcycle: '', //保養頻率 + salesman: '', //營業員 + contract_begin_date: '', //合約開始時間 + contract_end_date: '', //合約終止時間 + area: '', //區域 + zip: '', //郵遞區號 + address: '', //地址 + customer: '', //立約人 + partyA: '', //業務聯繫人 + partyAaddress: '', //業務聯繫人地址 + partyAphone: '', //業務聯繫人電話 + partyAemail: '', //業務聯繫人email + files: [], //附件檔案 + num: '', //電梯數量 + disabled: false, //資料庫是否有電梯數量資料 + elevators: [], //機種、載重、人乘、樓停、樓層、速度、緯度、經度、開門方式、保養別、廠牌、竣檢日、許可證日期 + }, + customize: false, + step: 1, + isLoading: false, + fail_arr: [], + nextStepFn() { + if (this.step == 1) { + if (this.data.repair_no == '') return alert('請輸入合約號'); + this.isLoading = true + this.getContractDate(); + } else if (this.step == 2) { + if (this.data.num <= 0) return alert('請填寫電梯數量!') + if (!this.data.disabled) { + this.createElevator(); + } + this.step = 3 + } + }, + nextStepKeyupFn(e) { + if (e.keyCode !== 13) return + if (this.step == 1) { + if (this.data.repair_no == '') return alert('請輸入合約號'); + this.isLoading = true + this.getContractDate(); + + } else if (this.step == 2) { + this.step = 3 + } + }, + createElevator() { + for (let i = 0; i < this.data.num; i++) { + this.data.elevators.push({ + spec: '', //規格 + weight: '', //載重 + speed: '', //速度 + persons: '', //人乘 + stop: '', //樓停 + floors: '', //樓層 + latitude: '', //緯度 + longitude: '', //經度 + elevator_brand: '', //廠牌 + opendoor: '', //開門方式 + maintainance: '', //保養別 + takecertificatedate: '', //竣檢日 + useful_date: '', //許可證有效日期 + }) + } + }, + getContractDate() { + axios.get('./api/getContractData.php?contracttype=b&contractno=' + this.data.contractno).then(res => { + if (!res.data) { + this.step = 2 + this.isLoading = false + return + } + if (!this.customize) { + console.log(res.data); + this.data.total_price = res.data.sold_price + this.data.salesman = res.data.salesman + this.data.contract_begin_date = res.data.contract_begin_date + this.data.contract_end_date = res.data.contract_end_date + this.data.address = res.data.address + this.data.customer = res.data.customer + this.data.partyA = res.data.customer + this.data.partyAaddress = res.data.address + this.data.num = res.data.num + this.data.disabled = (res.data.num > 0) ? true : false; + this.data.elevators = res.data.elevators + let cityIndex = this.data.address.indexOf('市'); + console.log(cityIndex); + if (cityIndex == -1) { + cityIndex = this.data.address.indexOf('縣'); + } + if (cityIndex > 1) { + // 獲取''市''前面的兩個字 + let city = this.data.address.substring(cityIndex - 2, cityIndex + 1); + this.data.area = city; + } else { + this.data.area = '' + } + } + this.step = 2 + this.isLoading = false + }).catch(err => { + console.error(err) + this.isLoading = false + }) + }, + preStepFn() { + if (this.step == 2) { + if (confirm('回到上一頁會將會初始化資料,確定返回嗎?')) { + this.step = 1 + this.data.total_price = '' + this.data.salesman = '' + this.data.contract_begin_date = '' + this.data.contract_end_date = '' + this.data.address = '' + this.data.customer = '' + this.data.partyA = '' + this.data.partyAaddress = '' + this.step = 1 + this.data.num = '' + this.data.disabled = false + this.data.elevators = [] + this.data.files = [] + this.data.vat = '' + this.data.mtype = '' + this.data.phone = '' + this.data.email = '' + this.data.mworker = '' + this.data.mcycle = '' + this.data.area = '' + this.data.zip = '' + this.data.partyAphone = '' + this.data.partyAemail = '' + return; + } + } else if (this.step == 3) { + this.step = 2 + } + }, + save() { + this.isLoading = true + const form = new FormData(); + form.append('contractno', this.data.contractno); + form.append('total_price', this.data.total_price); + form.append('vat', this.data.vat); + form.append('mtype', this.data.mtype); + form.append('phone', this.data.phone); + form.append('email', this.data.email); + form.append('mworker', this.data.mworker); + form.append('mcycle', this.data.mcycle); + form.append('salesman', this.data.salesman); + form.append('contract_begin_date', this.data.contract_begin_date); + form.append('contract_end_date', this.data.contract_end_date); + form.append('address', this.data.address); + form.append('area', this.data.area); + form.append('customer', this.data.customer); + form.append('partyA', this.data.partyA); + form.append('partyAaddress', this.data.partyAaddress); + form.append('partyAphone', this.data.partyAphone); + form.append('partyAemail', this.data.partyAemail); + form.append('user_id', user_id); + form.append('user_name', user_name); + form.append('num', this.data.num); + form.append('elevators', JSON.stringify(this.data.elevators)); + form.append('contracttype', 'b'); + + // 如果有附件檔案,可以逐一加入 + for (var i = 0; i < this.data.files.length; i++) { + form.append('files[]', this.data.files[i]); + } + axios.post('./api/postContractData.php', form).then(res => { + console.log(res.status); + if (res.status === 200) { + alert('儲存成功'); + this.step = 1 + this.data.total_price = '' + this.data.salesman = '' + this.data.contract_begin_date = '' + this.data.contract_end_date = '' + this.data.address = '' + this.data.customer = '' + this.data.partyA = '' + this.data.partyAaddress = '' + this.step = 1 + this.data.num = '' + this.data.disabled = false + this.data.elevators = [] + this.data.files = [] + this.data.vat = '' + this.data.mtype = '' + this.data.phone = '' + this.data.email = '' + this.data.mworker = '' + this.data.mcycle = '' + this.data.area = '' + this.data.zip = '' + this.data.partyAphone = '' + this.data.partyAemail = '' + } + this.isLoading = false + }).catch(error => { + let code = error.response.status; + if (code == 422) { + this.fail_arr = error.response.data + this.errorFn(); + } + if (code == 500) { + alert('儲存失敗!可能為以下錯誤:\n' + error.response.data) + } + + this.isLoading = false + }) + }, + errorFn() { + let msg = '' + for (let i = 0; i < this.fail_arr.length; i++) { + msg += this.fail_arr[i] + '、' + } + alert(msg) + }, + uploadFiles(e) { + this.data.files = e.target.files + }, + } +}; + +const contractNewApply = () => { + return { + step: 1, + isLoading: false, + data: { + mid: mid, + vol_no: contractno, + salesman: salesman, + salesmanname: salesmanname, + apply_date: apply_date, + apply_type: 'A', + case_name: case_name, + company: company, + manager: manager, + vat: vat, + total_price: price_total, + price_a: price_a, + price_b: price_b, + address: address, + workdeadline_a: 30, //完工期限: 幾天內安裝完成,預設30 + workdeadline_b: 7, //完工期限: 幾天內整理完善,預設7 + regulations: 10, //附則 + freedeadline: 18, //免保期限(月) + tradeaddress: '', //交貨地點 + tradedeadline: 90, //交貨期限 + items: items, + }, + pays: { + 1: 0, + 2: 0, + 3: 0, + 4: 0, + 5: 0, + 6: 0, + 7: 0, + }, + tickets: { + 1: 0, + 2: 0, + 3: 0, + 4: 0, + 5: 0, + 6: 0, + 7: 0, + }, + localnumber(num) { + return num.toLocaleString(); + }, + storageFn() { + this.isLoading = true + const isFirst = 1; + const form = new FormData(); + form.append('mid', this.data.mid); + form.append('vol_no', this.data.vol_no); + form.append('salesman', this.data.salesman); + form.append('apply_date', this.data.apply_date); + form.append('apply_type', this.data.apply_type); + form.append('case_name', this.data.case_name); + form.append('company', this.data.company); + form.append('manager', this.data.manager); + form.append('vat', this.data.vat); + form.append('total_price', this.data.total_price); + form.append('price_a', this.data.price_a); + form.append('price_b', this.data.price_b); + form.append('address', this.data.address); + form.append('workdeadline_a', this.data.workdeadline_a); + form.append('workdeadline_b', this.data.workdeadline_b); + form.append('regulations', this.data.regulations); + form.append('freedeadline', this.data.freedeadline); + form.append('tradeaddress', this.data.tradeaddress); + form.append('tradedeadline', this.data.tradedeadline); + form.append('isFirst', isFirst); + form.append('user_id', user_id); + axios.post('./api/postContractNewApplyData.php', form).then(res => { + if (res.status === 200) { + alert('暫存成功'); + console.log(res.data); + } + this.isLoading = false + }).catch(error => { + alert('儲存失敗!可能為以下錯誤:\n' + error.response.data) + this.isLoading = false + }) + } + } +} + +const contract_edit = () => { + console.log(contract_status); + return { + isLoading: false, + data: { + id: id, + repair_no: repair_no, + contractno: contractno, + company: company, + taxid: taxid, + facilityno: facilityno, + address: address, + type: type, + invoice: invoice, + repaireid: repaireid, + total_price: total_price, + sign_date: sign_date, + user_id: user_id, + contract_status: contract_status + + }, + fail_arr: [], + deleteFileFn(id) { + if (!confirm("確定要刪除嗎?")) return + this.data.files = this.data.files.filter(file => id != file.id) + this.data.deletefiles.push(id) + console.log(this.data.deletefiles); + }, + save() { + this.isLoading = true + const form = new FormData(); + form.append("id", this.data.id); + form.append("repair_no", this.data.repair_no); + form.append("contractno", this.data.contractno); + form.append("company", this.data.company); + form.append("taxid", this.data.taxid); + form.append("facilityno", this.data.facilityno); + form.append("address", this.data.address); + form.append("type", this.data.type); + form.append("invoice", this.data.invoice); + form.append("repaireid", this.data.repaireid); + form.append("total_price", this.data.total_price); + form.append("sign_date", this.data.sign_date); + form.append("user_id", user_id); + form.append("contract_status", this.data.contract_status); + form.append('contracttype', 'r'); + + axios.post("./api/putContractData.php", form).then(res => { + console.log(res); + if (res.status === 200) { + alert("更新成功"); + window.location.reload(); + } + this.isLoading = false + }).catch(error => { + console.log(this.data); + console.log(error); + let code = error.response.status; + if (code == 422) { + this.fail_arr = error.response.data + this.errorFn() + } + if (code == 500) { + alert("更新失敗!可能為以下錯誤:\n" + error.response.data) + } + this.isLoading = false + }) + + }, + uploadFiles(e) { + this.data.newfiles = e.target.files + }, + errorFn() { + let msg = "" + for (let i = 0; i < this.fail_arr.length; i++) { + msg += this.fail_arr[i] + "、" + } + alert(msg) + } + } + +} \ No newline at end of file diff --git a/wms/contract-repair/js/alpinejs/cdn.min.js b/wms/contract-repair/js/alpinejs/cdn.min.js new file mode 100644 index 00000000..922cc02e --- /dev/null +++ b/wms/contract-repair/js/alpinejs/cdn.min.js @@ -0,0 +1,5 @@ +(()=>{var Ze=!1,Qe=!1,H=[],et=-1;function zt(e){En(e)}function En(e){H.includes(e)||H.push(e),vn()}function we(e){let t=H.indexOf(e);t!==-1&&t>et&&H.splice(t,1)}function vn(){!Qe&&!Ze&&(Ze=!0,queueMicrotask(Sn))}function Sn(){Ze=!1,Qe=!0;for(let e=0;ee.effect(t,{scheduler:r=>{tt?zt(r):r()}}),rt=e.raw}function nt(e){I=e}function qt(e){let t=()=>{};return[n=>{let i=I(n);return e._x_effects||(e._x_effects=new Set,e._x_runEffects=()=>{e._x_effects.forEach(o=>o())}),e._x_effects.add(i),t=()=>{i!==void 0&&(e._x_effects.delete(i),L(i))},i},()=>{t()}]}function q(e,t,r={}){e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!0,composed:!0,cancelable:!0}))}function O(e,t){if(typeof ShadowRoot=="function"&&e instanceof ShadowRoot){Array.from(e.children).forEach(i=>O(i,t));return}let r=!1;if(t(e,()=>r=!0),r)return;let n=e.firstElementChild;for(;n;)O(n,t,!1),n=n.nextElementSibling}function v(e,...t){console.warn(`Alpine Warning: ${e}`,...t)}var Ut=!1;function Wt(){Ut&&v("Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems."),Ut=!0,document.body||v("Unable to initialize. Trying to load Alpine before `` is available. Did you forget to add `defer` in Alpine's ` + + + + + + +
+
+
+

Bootstrap Migration

+
+
+
+
+
+

Hello, world!

+

This is a template for a simple marketing or informational website. It includes a large callout called a jumbotron and three supporting pieces of content. Use it as a starting point to create something more unique.

+ Learn more » +
+
+
+ +
+
+

Thumbnails

+
+ +
+
+
+
+

Dropdown

+
+ + + + +
+
+
+
+

Badges

+
+ +
+
+ +
+
+

Tables

+
+
+ + + + + + + + + + + + + + + + + + + + + +
NamePremium Plan
JohnNo
JamieYes
JillYes
+
+
+ + + + + + + + + + + + + + + + + + + + + +
NamePremium Plan
JohnNo
JamieYes
JillYes
+
+
+ + + + + + + + + + + + + + + + + + + + + +
NamePremium Plan
JohnNo
JamieYes
JillYes
+
+
+ + + + + + + + + + + + + + + + + + + + + +
NamePremium Plan
JohnNo
JamieYes
JillYes
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeFilesLanguages
RubyJavaScriptPython
Alpha TeamProject 12 + +
Beta TeamProject 152 + +
Project 212 + +
Project 321 + +
+
+
+
+
+
+
+

Alerts

+
+
Well done! You successfully read this important alert message.
+
Heads up! This alert needs your attention, but it's not super important.
+
Warning! Best check yo self, you're not looking too good.
+
Oh snap! Change a few things up and try submitting again.
+
+
+ +
+
+

Panels

+
+
+
+
+
One
+
Two
+
Three
+
+
+
+
+
One
+
Two
+
Three
+
+
+
+
+
One
+
Two
+
Three
+
+
+
+
Error
+
Panel content
+
+
+
Info
+
Panel content
+
+
+
Success
+
Panel content
+
+
+

Header

+
Panel content
+
+
+

Header

+
Panel content
+
+
+

Header

+
Panel content
+
+
+
+
+
+
+

Wells

+
+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed diam eget risus varius blandit sit amet non magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Aenean lacinia bibendum nulla sed consectetur.

+
+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed diam eget risus varius blandit sit amet non magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Aenean lacinia bibendum nulla sed consectetur.

+
+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed diam eget risus varius blandit sit amet non magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Aenean lacinia bibendum nulla sed consectetur.

+
+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed diam eget risus varius blandit sit amet non magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Aenean lacinia bibendum nulla sed consectetur.

+
+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed diam eget risus varius blandit sit amet non magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Aenean lacinia bibendum nulla sed consectetur.

+
+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed diam eget risus varius blandit sit amet non magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Aenean lacinia bibendum nulla sed consectetur.

+
+
+
+
+ + + + diff --git a/wms/contract-repair/semantic/Semantic-UI-master/examples/components/button.html b/wms/contract-repair/semantic/Semantic-UI-master/examples/components/button.html new file mode 100644 index 00000000..57e7e1cf --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/examples/components/button.html @@ -0,0 +1,222 @@ + + + + + + + + Theming - Semantic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+ + + + +
+ +
+ + +
+ + + +
+ +
+
Horizontal
+ +
+
+
Vertical
+ +
+
+
Fade In
+ +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + + +
+ +
+ +
+ +
+ +
+ +
+
One
+
Two
+
+
+ +
+
+
One
+
Two
+
+ +
+
+ + + + + + + +
+
+ + + + + + + + + +
+ + +
+ +
+ + + + +
+ +
+
+ + + \ No newline at end of file diff --git a/wms/contract-repair/semantic/Semantic-UI-master/examples/components/card.html b/wms/contract-repair/semantic/Semantic-UI-master/examples/components/card.html new file mode 100644 index 00000000..f7ffa48f --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/examples/components/card.html @@ -0,0 +1,313 @@ + + + + + + + + Theming - Semantic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
Add Friend
+
+
+
+ +
+
+
Title
+
+ Meta +
+
One or two sentence description that may go to several lines
+
+ +
+
+
+
+
+
+
Call to Action
+
+
+
+ +
+
+ Name +
+ Date +
+
+ +
+
+
+
+ +
+ +
+
+ +
+
+
+
+
+ +
+ +
+
+ +
+
+
+
+
+
+ + + + Favorite + +
+
+ +
+
+
+
+
+ + Abbreviated Header +
+
+ +
+
+
+
+ Action 1 +
+
+ Action 2 +
+
+
+ +
+
Cute Dog
+
+ Animals +
+
+ +
+
+
+
+ Username +
+
+
+
+
+
+ Action 1 +
+
+ Action 2 +
+
+
+ +
+
+
+ Action 3 +
+
+ Action 4 +
+
+
+
+ + +
+
+
+ Content 1 +
+
+ Content 2 +
+
+ Content 3 +
+
+ Extra Content +
+
+
+
+ Content 1 +
+
+ Content 2 +
+
+ Content 3 +
+
+ Extra Content +
+
+
+
+ Content 1 +
+
+ Content 2 +
+
+ Content 3 +
+
+ Extra Content +
+
+
+
+ Content 1 +
+
+ Content 2 +
+
+ Content 3 +
+
+ Extra Content +
+
+
+ +
+
+
+ +
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+ +
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/wms/contract-repair/semantic/Semantic-UI-master/examples/components/input.html b/wms/contract-repair/semantic/Semantic-UI-master/examples/components/input.html new file mode 100644 index 00000000..8e202837 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/examples/components/input.html @@ -0,0 +1,159 @@ + + + + + + + + Theming - Semantic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + +
Search
+
+ +
+
+ +
+
+ +
+ + +
+
+ +
+ + +
+
+ + +
+
+
+ + +
+ +
+ + +
+ +
+
+ +
+ +
+ +
+
+
+ http:// +
+ + +
+
+ +
+ + Add +
+
+
+
+ +
+ +
+
+ +
+
+ + + \ No newline at end of file diff --git a/wms/contract-repair/semantic/Semantic-UI-master/examples/components/menu.html b/wms/contract-repair/semantic/Semantic-UI-master/examples/components/menu.html new file mode 100644 index 00000000..d5310ed4 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/examples/components/menu.html @@ -0,0 +1,209 @@ + + + + + + + + Theming - Semantic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ +
+ +
+ +
+
+ + + \ No newline at end of file diff --git a/wms/contract-repair/semantic/Semantic-UI-master/examples/components/site.html b/wms/contract-repair/semantic/Semantic-UI-master/examples/components/site.html new file mode 100644 index 00000000..88be119b --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/examples/components/site.html @@ -0,0 +1,74 @@ + + + + + + + + + + Theming - Semantic + + + + + + + + + + +
+
+

Heading 1

+

Heading 2

+

Heading 3

+

Heading 4

+
Heading 5
+

Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam id dolor id nibh ultricies vehicula.

+
+
+

Example body text

+

Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam id dolor id nibh ultricies vehicula.

+

This line of text is meant to be treated as fine print.

+

The following snippet of text is rendered as bold text.

+

The following snippet of text is rendered as italicized text.

+

An abbreviation of the word attribute is attr.

+
+
+
+
Red
+
Orange
+
Yellow
+
Olive
+
Green
+
Teal
+
Blue
+
Violet
+
Purple
+
Pink
+
Brown
+
Grey
+
Black
+
+
+
+ + + \ No newline at end of file diff --git a/wms/contract-repair/semantic/Semantic-UI-master/examples/components/sticky-context.html b/wms/contract-repair/semantic/Semantic-UI-master/examples/components/sticky-context.html new file mode 100644 index 00000000..e72cb320 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/examples/components/sticky-context.html @@ -0,0 +1,197 @@ + + + + + + + + + + Sticky Context - Semantic + + + + + + + + + + + + + + + + + + + + + + +
+
+

+ Page Header +

+

This example helps show sticky behavior when it is larger or smaller than browser window or content height.

+
+
+
+ +
+ Tall +
+
+ Short +
+
+
+ +
+ Tall +
+
+ Short +
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + + +
+
+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+ +

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. + + Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+ +

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. + + Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+
+ + + + diff --git a/wms/contract-repair/semantic/Semantic-UI-master/examples/components/table.html b/wms/contract-repair/semantic/Semantic-UI-master/examples/components/table.html new file mode 100644 index 00000000..3564728e --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/examples/components/table.html @@ -0,0 +1,471 @@ + + + + + + + + Theming - Semantic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PersonCaloriesFatProtein
Delmar3636g2g
Louise2424g29g
Terrell2211g9g
Marion735g3g
Clayton738g20g
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PersonCaloriesFatProtein
Drema1526g8g
Nona1121g16g
Isidra3443g11g
Bart4140g30g
Nguyet4144g28g
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PersonCaloriesFatProtein
Mirna128g29g
Fernando382g48g
Lisette189g23g
Ahmad4226g49g
Laquanda2727g49g
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PersonCaloriesFatProtein
Drema1526g8g
Nona1121g16g
Isidra3443g11g
Bart4140g30g
Nguyet4144g28g
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PersonCaloriesFatProtein
Tasia127g21g
Ronnie3837g38g
Gabriel3046g46g
Logan1221g39g
Clare3941g2g
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PersonCaloriesFatProtein
Rosaline535g6g
Barrie2723g28g
Trinidad1450g7g
Jaqueline3130g50g
Tamala186g13g
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PersonCaloriesFatProtein
Lianne2332g43g
Joette2113g31g
Le2839g23g
Sacha4643g13g
Bruna947g12g
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CaloriesFatProtein
Lianne2332g43g
Joette2113g31g
Le2839g23g
Sacha4643g13g
Bruna947g12g
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PersonCaloriesFatProtein
Lianne2332g43g
Joette2113g31g
Le2839g23g
Sacha4643g13g
Bruna947g12g
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PersonCaloriesFatProtein
Lianne2332g43g
Joette2113g31g
Le2839g23g
Sacha4643g13g
Bruna947g12g
+
+ + + \ No newline at end of file diff --git a/wms/contract-repair/semantic/Semantic-UI-master/examples/fixed.html b/wms/contract-repair/semantic/Semantic-UI-master/examples/fixed.html new file mode 100644 index 00000000..d285eaa1 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/examples/fixed.html @@ -0,0 +1,137 @@ + + + + + + + + + + Fixed Menu Example - Semantic + + + + + + + + + + + + + + + + + + + + + + + +
+

Semantic UI Fixed Template

+

This is a basic fixed menu template using fixed size containers.

+

A text container is used for the main container, which is useful for single column layouts

+ + + + + + + +
+ + + + + diff --git a/wms/contract-repair/semantic/Semantic-UI-master/examples/grid.html b/wms/contract-repair/semantic/Semantic-UI-master/examples/grid.html new file mode 100644 index 00000000..9553162b --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/examples/grid.html @@ -0,0 +1,407 @@ + + + + + + + + + + Grid Example - Semantic + + + + + + + + + + + +
+

Using Grids

+ +

Container

+

A container is a fixed width element that wraps your site's content. It remains a constant size and uses margin to center. Containers are the simplest way to center page content inside a grid. +

+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+

Text Container

+

Sometimes you just need to put a single column of centered text on a page. A text container is a special type of container optimized for a single flowing column of text, like this instructions on this page. +

+

Text containers do not need to use grids and help simplify basic page layouts.

+
+ +
+
+
+
+
+ + +
+ +

Grid Content

+ +

Column Flow

+

A grid does not necessarily need to specify rows. If you include columns as direct child of ui grid content will automatically flow to the next row when all the grid columns are taken in the current row.

+ +
+
+
+
+
+
+
+
+
+
+ +

Clearing Rows

+

Adding row wrappers allow you to manually specify you want a new row to begin.

+ +
+
+
+
+
+
+
+
+ +

Specifying Row Width

+

Specifying a grid column count will divide columns into rows of predetermined column count. Additional columns will automatically flow to the next row.

+
+
column
+
column
+
column
+
column
+
column
+
column
+
+ +

Specifying Column Width

+

You can also specify column widths for each column individually

+
+
four wide column
+
eight wide column
+
four wide column
+
+ +

Special Variations

+

Some special variations that format grids like tables require you to specify rows. For example a divided grid or a celled grid requires row wrappers.

+ +
Celled Grid
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
Internally Celled Grid
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
Divided Grid
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
Vertically Divided Grid
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +

Adjusting Grids

+ + +

Centering Content

+

If a row does not take up all sixteen grid columns, you can use a ui centered grid, centered row, or centered column to center the column contents inside the grid. +

+
+
+
+
+
+
+
+ +

Floating Rows

+

Since Semantic UI's grid is based on flex box, a left floated item should come first, and a right floated item last in its row.

+ +
+
+
+ Left floated +
+
+
+
+ Right floated +
+
+
+ + +

Text Alignment

+

You can specify text alignment using alignment variations on a grid, row, or column level.

+ +
+
+ right aligned column +
+
+ left aligned column +
+
+
+ center aligned row +
+
+ center aligned row +
+
+
+ right aligned column +
+
+ +

Vertical Alignment

+

You can specify vertical alignment on a grid, row, or column level.

+
+
+
+ +
+
+ + +
+
+ +
+
+
+ +

Equal Width Columns

+

Specifying an equal width grid will automatically determine column sizes to fit evenly inside one row

+
+
+
column
+
column
+
column
+
column
+
+
+
column
+
column
+
column
+
+
+ + +

Responsive Patterns

+ +

Doubling

+

You can set columns to double in width at each device jump

+
+
column
+
column
+
column
+
column
+
column
+
+ +

Stackable

+

You can set columns to stack on mobile

+
+
column
+
column
+
column
+
+ +

Responsive Width Adjustments

+

You can specify columns to appear at different widths on different screens

+ +
+
+
+
+
+
+
+
+
+
+
+
+
+ +

Specifying Device Visibility

+

You can specify columns to appear only a particular screen

+
+
+
ten wide column computer only
+
six wide column computer only
+
+
sixteen wide column mobile only
+
+
computer only row
+
computer only row
+
computer only row
+
+
+
mobile only column
+
mobile only column
+
+
+
column
+
column
+
+
+ +
+ + + + + + diff --git a/wms/contract-repair/semantic/Semantic-UI-master/examples/homepage.html b/wms/contract-repair/semantic/Semantic-UI-master/examples/homepage.html new file mode 100644 index 00000000..c236f2b4 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/examples/homepage.html @@ -0,0 +1,296 @@ + + + + + + + + + + Homepage - Semantic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ +
+

+ Imagine-a-Company +

+

Do whatever you want when you want to.

+
Get Started
+
+ +
+ +
+
+
+
+

We Help Companies and Companions

+

We can give your company superpowers to do things that they never thought possible. Let us delight your customers and empower your needs...through pure data analytics.

+

We Make Bananas That Can Dance

+

Yes that's right, you thought it was the stuff of dreams, but even bananas can be bioengineered.

+
+
+ +
+
+
+ +
+
+
+ + +
+
+
+
+

"What a Company"

+

That is what they all say about us

+
+
+

"I shouldn't have gone with their competitor."

+

+ Nan Chief Fun Officer Acme Toys +

+
+
+
+
+ +
+
+

Breaking The Grid, Grabs Your Attention

+

Instead of focusing on content creation and hard work, we have learned how to master the art of doing nothing by providing massive amounts of whitespace and generic content that can seem massive, monolithic and worth your attention.

+ Read More +

+ Case Studies +

+

Did We Tell You About Our Bananas?

+

Yes I know you probably disregarded the earlier boasts as non-sequitur filler content, but its really true. It took years of gene splicing and combinatory DNA research, but our bananas can really dance.

+ I'm Still Quite Interested +
+
+ + + +
+ + + + diff --git a/wms/contract-repair/semantic/Semantic-UI-master/examples/login.html b/wms/contract-repair/semantic/Semantic-UI-master/examples/login.html new file mode 100644 index 00000000..4783340a --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/examples/login.html @@ -0,0 +1,125 @@ + + + + + + + + + + Login Example - Semantic + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

+ +
+ Log-in to your account +
+

+
+
+
+
+ + +
+
+
+
+ + +
+
+
Login
+
+ +
+ +
+ +
+ New to us? Sign Up +
+
+
+ + + + diff --git a/wms/contract-repair/semantic/Semantic-UI-master/examples/responsive.html b/wms/contract-repair/semantic/Semantic-UI-master/examples/responsive.html new file mode 100644 index 00000000..9255fe22 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/examples/responsive.html @@ -0,0 +1,689 @@ + + + + + + + + + + Responsive Elements - Semantic + + + + + + + + +

Responsive UI Examples

+ + +

Basic Responsive

+ + +

Container

+
+
+
Content
+
Content
+
Content
+
Content
+
+
+

Text Container

+
+
+
Content
+
Content
+
Content
+
Content
+
+
+ +

Stackable Grid

+
+
+
Content
+
+
+
Content
+
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
+
Content
+
+
+
Content
+
+
+ + +

Doubling Grid

+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+ +

Doubling Stackable Grid

+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+ +

Nested Stackable Grid

+
+
+
+
+
Content
+
+
+
Content
+
+
+
+
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
+
+ + +

Stackable Grid Container

+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+ + +

Doubling Grid Container

+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+ +

Doubling Stackable Grid Container

+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+ +

Device Adjustment

+ +

Device Column Width

+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+ +

Device Visibility

+
+
+
Widescreen
+
+
+
Widescreen
+
+
+
Large Screen
+
+
+
Large Screen
+
+
+
Tablet and Mobile
+
+
+
Tablet and Mobile
+
+
+
Mobile
+
+
+
+
Computer and Up
+
+
+
Computer and Up
+
+
+
+
Tablet Only Content
+
+
+
Tablet Only Content
+
+
+
Tablet Only Content
+
+
+
Tablet Only Content
+
+
+ + +

Responsive Grid with Variations

+ +

Stackable Divided Grid

+
+
+
+
Content
+
+
+
Content
+
+
+
+
+
Content
+
+
+
Content
+
+
+
+
+
Content
+
+
+
Content
+
+
+
+ +

Stackable Vertically Divided Grid

+
+
+
+
Content
+
+
+
Content
+
+
+
+
+
Content
+
+
+
Content
+
+
+
+
+
Content
+
+
+
Content
+
+
+
+ +

Celled Stackable Grid

+
+
+
+
Content
+
+
+
Content
+
+
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
+
+
Content
+
+
+
Content
+
+
+
+

Consecutive Doubling Stackable Grid

+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+ +

Grid Container

+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+
Content
+
+
+ +

Responsive Elements

+ + +

Responsive Vertical Divider

+ +
+
+
Content
+
+
+ Or +
+
+
Content
+
+
+ + +

Responsive Table

+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
EmployeeCorrect Guesses
+

+ +
+ Lena +
Human Resources +
+

+
+ 22 +
+

+ +
+ Matthew +
Fabric Design +
+

+
+ 15 +
+

+ +
+ Lindsay +
Entertainment +
+

+
+ 12 +
+

+ +
+ Mark +
Executive +
+

+
+ 11 +
+
+ +

Responsive Menu

+ + + +

Responsive Item

+ +
+
+
+
+ +
+
+ Content Header +
+ Date + Category +
+
+ A description which may flow for several lines and give context to the content. +
+
+ Username +
+
+
+
+
+ +
+
+ Content Header +
+ Date + Category +
+
+ A description which may flow for several lines and give context to the content. +
+
+
+ Primary + +
+
Limited
+
+
+
+
+
+ +
+
+ Content Header +
+ Date + Category +
+
+ A description which may flow for several lines and give context to the content. +
+
+
+ Primary + +
+
+
+
+
+
+ +

Responsive Steps

+ +
+
+
+
+
Shipping
+
Choose your shipping options
+
+
+
+
+
Billing
+
Enter billing information
+
+
+
+
+
Confirm Order
+
Review your order details
+
+
+
+
+ + + + + + + + + diff --git a/wms/contract-repair/semantic/Semantic-UI-master/examples/sticky.html b/wms/contract-repair/semantic/Semantic-UI-master/examples/sticky.html new file mode 100644 index 00000000..8fb8d4f6 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/examples/sticky.html @@ -0,0 +1,230 @@ + + + + + + + + + + Sticky Example - Semantic + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Sticky Example

+

This example shows how to use lazy loaded images, a sticky menu, and a simple text container

+
+ + + + +
+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+
+ +
+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+ +

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. + + Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+ +

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. + + Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus

+
+ + + + + diff --git a/wms/contract-repair/semantic/Semantic-UI-master/examples/theming.html b/wms/contract-repair/semantic/Semantic-UI-master/examples/theming.html new file mode 100644 index 00000000..6166fa58 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/examples/theming.html @@ -0,0 +1,89 @@ + + + + + + + + + + Theming - Semantic + + + + + + + + + +
+ +

Theming Examples

+ +

Site

+ + +

Menu

+ + +

Buttons

+ + +

Table

+ + +

Input

+ + + +

Card

+ + + + +
+ + + + + + diff --git a/wms/contract-repair/semantic/Semantic-UI-master/gulpfile.js b/wms/contract-repair/semantic/Semantic-UI-master/gulpfile.js new file mode 100644 index 00000000..1ee5cc1a --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/gulpfile.js @@ -0,0 +1,90 @@ +/******************************* + Set-up +*******************************/ + +let + gulp = require('gulp'), + + // read user config to know what task to load + config = require('./tasks/config/user'), + + // watch for file changes and build + watch = require('./tasks/watch'), + + // build all files + build = require('./tasks/build'), + buildJS = require('./tasks/build/javascript'), + buildCSS = require('./tasks/build/css'), + buildAssets = require('./tasks/build/assets'), + + // utility tasks + clean = require('./tasks/clean'), + version = require('./tasks/version'), + + // install tasks + install = require('./tasks/install'), + checkInstall = require('./tasks/check-install'), + + // docs tasks + serveDocs = require('./tasks/docs/serve'), + buildDocs = require('./tasks/docs/build'), + + // rtl + buildRTL = require('./tasks/rtl/build'), + watchRTL = require('./tasks/rtl/watch') +; + +/* Simple Compatibility Fix for Gulp 3 Style Tasks */ +gulp.start = function(name) { + let task = gulp.task(name); + if(task) { + task(); + } +} + +/******************************* + Tasks +*******************************/ + +gulp.task('watch', watch); + +gulp.task('build', build); +gulp.task('build-javascript', buildJS); +gulp.task('build-css', buildCSS); +gulp.task('build-assets', buildAssets); + +gulp.task('clean', clean); +gulp.task('version', version); + +gulp.task('install', install); +gulp.task('check-install', checkInstall); + + +gulp.task('default', checkInstall); + +/*-------------- + Docs +---------------*/ + +/* + Lets you serve files to a local documentation instance + https://github.com/Semantic-Org/Semantic-UI-Docs/ +*/ + +gulp.task('serve-docs', serveDocs); +gulp.task('build-docs', buildDocs); + + +/*-------------- + RTL +---------------*/ + +if(config.rtl) { + gulp.task('watch-rtl', watchRTL); + gulp.task('build-rtl', buildRTL); +} + +/* Admin Tasks */ +if(config.admin) { + require('./tasks/collections/admin')(gulp); +} diff --git a/wms/contract-repair/semantic/Semantic-UI-master/karma.conf.js b/wms/contract-repair/semantic/Semantic-UI-master/karma.conf.js new file mode 100644 index 00000000..970b152c --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/karma.conf.js @@ -0,0 +1,85 @@ +// Karma configuration +module.exports = function(config) { + config.set({ + + // base path, that will be used to resolve files and exclude + basePath: '', + + // frameworks to use + frameworks: [ + 'jasmine' + ], + + // list of files / patterns to load in the browser + files: [ + // require jquery + 'server/files/javascript/library/jquery.js', + // read css from compiled css + 'docs/build/uncompressed/**/*.css', + // read js from src js + 'src/definitions/**/*.js', + // require helpers + 'test/helpers/*.js', + // require fixtures + { + pattern : 'test/fixtures/*.html', + included : false, + served : true + }, + // require spec + 'test/modules/module.spec.js', + // require tests + 'test/modules/*.js' + ], + + // list of files to exclude + exclude: [ + '**/*.swp', + 'karma.conf.js' + ], + + preprocessors: { + '**/*.html': [], + 'src/definitions/**/*.js': 'coverage' + }, + + // test results reporter to use + // possible values: 'dots', 'progress', 'junit', 'growl', 'coverage' + reporters: ['spec', 'coverage'], + + coverageReporter: { + type: 'lcov' + }, + + // web server port + port: 9999, + + // enable / disable colors in the output (reporters and logs) + colors: true, + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + // enable / disable watching file and executing tests whenever any file changes + autoWatch: true, + + // Start these browsers, currently available: + // - Chrome + // - ChromeCanary + // - Firefox + // - Opera + // - Safari (only Mac) + // - PhantomJS + // - IE (only Windows) + browsers: ['PhantomJS'], + + + // If browser does not capture in given timeout [ms], kill it + captureTimeout: 60000, + + // Continuous Integration mode + // if true, it capture browsers, run tests and exit + singleRun: false + }); +}; diff --git a/wms/contract-repair/semantic/Semantic-UI-master/logo.png b/wms/contract-repair/semantic/Semantic-UI-master/logo.png new file mode 100644 index 00000000..9f1df7ba Binary files /dev/null and b/wms/contract-repair/semantic/Semantic-UI-master/logo.png differ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/package.json b/wms/contract-repair/semantic/Semantic-UI-master/package.json new file mode 100644 index 00000000..01717df0 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/package.json @@ -0,0 +1,93 @@ +{ + "name": "semantic-ui", + "version": "2.5.0", + "title": "Semantic UI", + "description": "Semantic empowers designers and developers by creating a shared vocabulary for UI.", + "homepage": "http://www.semantic-ui.com", + "author": "Jack Lukic ", + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/Semantic-Org/Semantic-UI.git" + }, + "bugs": { + "url": "https://github.com/Semantic-Org/Semantic-UI/issues" + }, + "scripts": { + "install": "gulp install" + }, + "peerDependencies": { + "better-console": "*", + "del": "*", + "extend": "*", + "gulp": "*", + "gulp-autoprefixer": "*", + "gulp-chmod": "*", + "gulp-clean-css": "*", + "gulp-clone": "*", + "gulp-concat": "*", + "gulp-concat-css": "*", + "gulp-copy": "*", + "gulp-dedupe": "*", + "gulp-flatten": "*", + "gulp-header": "*", + "gulp-if": "*", + "gulp-less": "*", + "gulp-notify": "*", + "gulp-plumber": "*", + "gulp-print": "*", + "gulp-rename": "*", + "gulp-replace": "*", + "gulp-rtlcss": "*", + "gulp-uglify": "*", + "map-stream": "*", + "replace-ext": "*", + "require-dot-file": "*", + "yamljs": "*" + }, + "dependencies": { + "better-console": "*", + "del": "*", + "extend": "*", + "gulp": "*", + "gulp-autoprefixer": "*", + "gulp-chmod": "*", + "gulp-clean-css": "*", + "gulp-clone": "*", + "gulp-concat": "*", + "gulp-concat-css": "*", + "gulp-copy": "*", + "gulp-dedupe": "*", + "gulp-flatten": "*", + "gulp-header": "*", + "gulp-if": "*", + "gulp-json-editor": "^2.5.4", + "gulp-less": "*", + "gulp-notify": "*", + "gulp-plumber": "*", + "gulp-print": "*", + "gulp-rename": "*", + "gulp-replace": "*", + "gulp-rtlcss": "*", + "gulp-uglify": "*", + "jquery": "^3.5.1", + "map-stream": "*", + "merge-stream": "^1.0.0", + "mkdirp": "^1.0.4", + "prompt-sui": "^3.2.1", + "replace-ext": "*", + "require-dot-file": "*", + "wrench-sui": "^0.0.3", + "yamljs": "*" + }, + "devDependencies": { + "@jsdevtools/npm-publish": "^1.4.3", + "@octokit/rest": "^19.0.4", + "gulp-concat-filenames": "*", + "gulp-debug": "^4.0.0", + "gulp-git": "^2.10.1", + "gulp-tap": "^2.0.0", + "merge-stream": "*" + }, + "style": "dist/semantic.css" +} diff --git a/wms/contract-repair/semantic/Semantic-UI-master/semantic.json.example b/wms/contract-repair/semantic/Semantic-UI-master/semantic.json.example new file mode 100644 index 00000000..6d67666e --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/semantic.json.example @@ -0,0 +1,24 @@ +{ + "base": "", + + "paths": { + "source": { + "config" : "src/theme.config", + "definitions" : "src/definitions/", + "site" : "src/site/", + "themes" : "src/themes/" + }, + "output": { + "packaged" : "dist/", + "uncompressed" : "dist/components/", + "compressed" : "dist/components/", + "themes" : "dist/themes/" + }, + "clean" : "dist/" + }, + + "permission" : false, + "autoInstall": false, + "rtl": false + +} diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/README.md b/wms/contract-repair/semantic/Semantic-UI-master/src/README.md new file mode 100644 index 00000000..20d35241 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/README.md @@ -0,0 +1,129 @@ +## Setup + +### Built-In Tools + +From the Semantic directory you can setup gulp to build Semantic by running. + +```bash +npm install +``` + +Semantic will automatically configure itself using a `post-install` script built into the package. + +After set-up can use gulp to build your project's css: + +```bash +# Watch files +gulp watch + +# Build all files +gulp build +``` + +Visit the [Getting Started Guide](http://learnsemantic.com/guide/expert.html) for more details on set-up + +### Custom Pipelines + +#### Importing Gulp Tasks + +Each gulp task can be imported into your own Gulpfile using `require` + +```javascript +const watch = require('path/to/semantic/tasks/watch'); + +gulp.task('watch ui', 'Watch Semantic UI', watch)); +``` + +#### Importing LESS + +> LESS files do not contain vendor prefixes. If you are to use these files directly you must add them during your build step. + +Before using source files you will need to create a `theme.config` by renaming `theme.config.example`, and a site folder by renaming `_site/` to `site/` + +You can then import Semantic from your own LESS files: + +```less +/* Import all components */ +@import 'src/semantic'; +``` + +To import individual components you will have to create a scope for each import using `& {}` + +```less +/* Import a specific component */ +& { @import 'src/definitions/elements/button'; } +``` + +### Config Files + +These files are generated automatically using install scripts, but must be manually renamed if you are using installing manually. + +filename | usage | Initial Name +--- | --- | --- +**theme.config** | config file that stores each element's current theme for LESS | theme.config.example +**site/** | folder storing all your site's variables and css overrides for each UI component | _site/ +**semantic.json** | stores folder paths for build tools and current installed version for updates. Only necessary when using build tools | semantic.json.example + +### Workflow + +You will only need to use Semantic's build tools while refining your UI. When designing pages, you can rely on the compiled css packages in `dist/`. + +When creating your UI you can try downloading different themes, adjusting your site-wide settings (font-family, colors, etc) and tweaking components in your site's component overrides. + +Files in the `examples/` folder of your project can be useful for testing out changes in your UI. For example, you might run `gulp watch` download a new theme to `src/site/themes/` then adjust your `theme.config` file with the name of the new theme and refresh `examples/kitchensink.html` to inspect changes in the theme. + +## Theming + +### Concepts + +#### Inheritance + +There are three levels of inheritance in Semantic +* Default theme - Semantic UI's neutral default theme +* Packaged theme - A specified packaged theme, like "amazon", or "material" +* Site theme - A theme specific to your site + +#### Folder Structure + +* `definitions/` contains the `css` and `javascript` definitions for each component +* `themes/` contains *pre-packaged themes* including Semantic's default theme +* `site/` contains your current site's theme + +View the [Theming Guide](http://learnsemantic.com/themes/overview.html) for a more in-depth look + +## Customizing + +#### Basic Customization + +The best way to start customizing is to specify overriding variables in your site's `site.variables` file. + +This is a blank stub file that lets you specify variables that overriding variables. + +Some important values to customize: +* Base font size +* Named color hex codes +* Header/Page Font-families +* Primary and secondary colors +* Grid column count + +To find out what variables are available to modify, you can inspect the variables in the default theme in `themes/default/` + +#### Advanced Configuration + +Each component has its own variable file, which can be used to modify any of the underlying variables for that component. + +For example `/site/elements/button.variables`. + +You may also specify your own custom LESS in `site/elements/button.overrides`. This file will have access to all underlying variables available for that component. + +#### Using Pre-Packaged Themes + +You can modify `theme.config` to use any prepackaged theme available in `src/themes/`. + +For example you can modify `theme.config` to use a `github` button theme by changing + +```less +@button: 'github'; +``` + +View the [Customization Guide](http://learnsemantic.com/developing/customizing.html) to learn more diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/breadcrumb.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/breadcrumb.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/breadcrumb.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/breadcrumb.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/breadcrumb.variables new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/breadcrumb.variables @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/form.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/form.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/form.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/form.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/form.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/form.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/grid.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/grid.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/grid.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/grid.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/grid.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/grid.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/menu.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/menu.overrides new file mode 100644 index 00000000..c172e5f5 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/menu.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ \ No newline at end of file diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/menu.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/menu.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/menu.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/message.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/message.overrides new file mode 100644 index 00000000..96091c36 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/message.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/message.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/message.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/message.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/table.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/table.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/table.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/table.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/table.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/collections/table.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/button.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/button.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/button.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/button.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/button.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/button.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/container.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/container.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/container.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/container.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/container.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/container.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/divider.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/divider.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/divider.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/divider.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/divider.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/divider.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/flag.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/flag.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/flag.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/flag.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/flag.variables new file mode 100644 index 00000000..e3e125d6 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/flag.variables @@ -0,0 +1,3 @@ +/*------------------- + Flag Variables +--------------------*/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/header.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/header.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/header.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/header.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/header.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/header.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/icon.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/icon.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/icon.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/icon.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/icon.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/icon.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/image.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/image.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/image.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/image.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/image.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/image.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/input.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/input.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/input.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/input.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/input.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/input.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/label.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/label.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/label.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/label.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/label.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/label.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/list.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/list.overrides new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/list.overrides @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/list.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/list.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/list.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/loader.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/loader.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/loader.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/loader.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/loader.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/loader.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/rail.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/rail.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/rail.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/rail.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/rail.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/rail.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/reveal.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/reveal.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/reveal.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/reveal.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/reveal.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/reveal.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/segment.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/segment.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/segment.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/segment.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/segment.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/segment.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/step.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/step.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/step.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/step.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/step.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/elements/step.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/globals/reset.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/globals/reset.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/globals/reset.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/globals/reset.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/globals/reset.variables new file mode 100644 index 00000000..cd955446 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/globals/reset.variables @@ -0,0 +1,3 @@ +/******************************* + User Global Variables +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/globals/site.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/globals/site.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/globals/site.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/globals/site.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/globals/site.variables new file mode 100644 index 00000000..3b5dc7de --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/globals/site.variables @@ -0,0 +1,3 @@ +/******************************* + User Global Variables +*******************************/ \ No newline at end of file diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/accordion.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/accordion.overrides new file mode 100644 index 00000000..660e664b --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/accordion.overrides @@ -0,0 +1,3 @@ +/******************************* + User Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/accordion.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/accordion.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/accordion.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/chatroom.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/chatroom.overrides new file mode 100644 index 00000000..660e664b --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/chatroom.overrides @@ -0,0 +1,3 @@ +/******************************* + User Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/chatroom.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/chatroom.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/chatroom.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/checkbox.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/checkbox.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/checkbox.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/checkbox.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/checkbox.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/checkbox.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/dimmer.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/dimmer.overrides new file mode 100644 index 00000000..660e664b --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/dimmer.overrides @@ -0,0 +1,3 @@ +/******************************* + User Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/dimmer.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/dimmer.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/dimmer.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/dropdown.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/dropdown.overrides new file mode 100644 index 00000000..660e664b --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/dropdown.overrides @@ -0,0 +1,3 @@ +/******************************* + User Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/dropdown.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/dropdown.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/dropdown.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/embed.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/embed.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/embed.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/embed.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/embed.variables new file mode 100644 index 00000000..e69de29b diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/modal.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/modal.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/modal.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/modal.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/modal.variables new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/modal.variables @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/nag.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/nag.overrides new file mode 100644 index 00000000..660e664b --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/nag.overrides @@ -0,0 +1,3 @@ +/******************************* + User Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/nag.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/nag.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/nag.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/popup.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/popup.overrides new file mode 100644 index 00000000..660e664b --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/popup.overrides @@ -0,0 +1,3 @@ +/******************************* + User Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/popup.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/popup.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/popup.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/progress.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/progress.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/progress.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/progress.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/progress.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/progress.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/rating.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/rating.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/rating.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/rating.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/rating.variables new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/rating.variables @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/search.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/search.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/search.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/search.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/search.variables new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/search.variables @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/shape.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/shape.overrides new file mode 100644 index 00000000..660e664b --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/shape.overrides @@ -0,0 +1,3 @@ +/******************************* + User Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/shape.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/shape.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/shape.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/sidebar.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/sidebar.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/sidebar.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/sidebar.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/sidebar.variables new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/sidebar.variables @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/sticky.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/sticky.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/sticky.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/sticky.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/sticky.variables new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/sticky.variables @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/tab.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/tab.overrides new file mode 100644 index 00000000..660e664b --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/tab.overrides @@ -0,0 +1,3 @@ +/******************************* + User Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/tab.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/tab.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/tab.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/transition.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/transition.overrides new file mode 100644 index 00000000..cba59efe --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/transition.overrides @@ -0,0 +1,3 @@ +/******************************* + Site Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/transition.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/transition.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/modules/transition.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/ad.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/ad.overrides new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/ad.overrides @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/ad.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/ad.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/ad.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/card.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/card.overrides new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/card.overrides @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/card.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/card.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/card.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/comment.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/comment.overrides new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/comment.overrides @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/comment.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/comment.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/comment.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/feed.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/feed.overrides new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/feed.overrides @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/feed.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/feed.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/feed.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/item.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/item.overrides new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/item.overrides @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/item.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/item.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/item.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/statistic.overrides b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/statistic.overrides new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/statistic.overrides @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/statistic.variables b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/statistic.variables new file mode 100644 index 00000000..6f085f93 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/_site/views/statistic.variables @@ -0,0 +1,3 @@ +/******************************* + User Variable Overrides +*******************************/ diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/behaviors/api.js b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/behaviors/api.js new file mode 100644 index 00000000..cdcfc753 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/behaviors/api.js @@ -0,0 +1,1167 @@ +/*! + * # Semantic UI - API + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +'use strict'; + +var + window = (typeof window != 'undefined' && window.Math == Math) + ? window + : (typeof self != 'undefined' && self.Math == Math) + ? self + : Function('return this')() +; + +$.api = $.fn.api = function(parameters) { + + var + // use window context if none specified + $allModules = $.isFunction(this) + ? $(window) + : $(this), + moduleSelector = $allModules.selector || '', + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + + returnedValue + ; + + $allModules + .each(function() { + var + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.fn.api.settings, parameters) + : $.extend({}, $.fn.api.settings), + + // internal aliases + namespace = settings.namespace, + metadata = settings.metadata, + selector = settings.selector, + error = settings.error, + className = settings.className, + + // define namespaces for modules + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + + // element that creates request + $module = $(this), + $form = $module.closest(selector.form), + + // context used for state + $context = (settings.stateContext) + ? $(settings.stateContext) + : $module, + + // request details + ajaxSettings, + requestSettings, + url, + data, + requestStartTime, + + // standard module + element = this, + context = $context[0], + instance = $module.data(moduleNamespace), + module + ; + + module = { + + initialize: function() { + if(!methodInvoked) { + module.bind.events(); + } + module.instantiate(); + }, + + instantiate: function() { + module.verbose('Storing instance of module', module); + instance = module; + $module + .data(moduleNamespace, instance) + ; + }, + + destroy: function() { + module.verbose('Destroying previous module for', element); + $module + .removeData(moduleNamespace) + .off(eventNamespace) + ; + }, + + bind: { + events: function() { + var + triggerEvent = module.get.event() + ; + if( triggerEvent ) { + module.verbose('Attaching API events to element', triggerEvent); + $module + .on(triggerEvent + eventNamespace, module.event.trigger) + ; + } + else if(settings.on == 'now') { + module.debug('Querying API endpoint immediately'); + module.query(); + } + } + }, + + decode: { + json: function(response) { + if(response !== undefined && typeof response == 'string') { + try { + response = JSON.parse(response); + } + catch(e) { + // isnt json string + } + } + return response; + } + }, + + read: { + cachedResponse: function(url) { + var + response + ; + if(window.Storage === undefined) { + module.error(error.noStorage); + return; + } + response = sessionStorage.getItem(url); + module.debug('Using cached response', url, response); + response = module.decode.json(response); + return response; + } + }, + write: { + cachedResponse: function(url, response) { + if(response && response === '') { + module.debug('Response empty, not caching', response); + return; + } + if(window.Storage === undefined) { + module.error(error.noStorage); + return; + } + if( $.isPlainObject(response) ) { + response = JSON.stringify(response); + } + sessionStorage.setItem(url, response); + module.verbose('Storing cached response for url', url, response); + } + }, + + query: function() { + + if(module.is.disabled()) { + module.debug('Element is disabled API request aborted'); + return; + } + + if(module.is.loading()) { + if(settings.interruptRequests) { + module.debug('Interrupting previous request'); + module.abort(); + } + else { + module.debug('Cancelling request, previous request is still pending'); + return; + } + } + + // pass element metadata to url (value, text) + if(settings.defaultData) { + $.extend(true, settings.urlData, module.get.defaultData()); + } + + // Add form content + if(settings.serializeForm) { + settings.data = module.add.formData(settings.data); + } + + // call beforesend and get any settings changes + requestSettings = module.get.settings(); + + // check if before send cancelled request + if(requestSettings === false) { + module.cancelled = true; + module.error(error.beforeSend); + return; + } + else { + module.cancelled = false; + } + + // get url + url = module.get.templatedURL(); + + if(!url && !module.is.mocked()) { + module.error(error.missingURL); + return; + } + + // replace variables + url = module.add.urlData( url ); + // missing url parameters + if( !url && !module.is.mocked()) { + return; + } + + requestSettings.url = settings.base + url; + + // look for jQuery ajax parameters in settings + ajaxSettings = $.extend(true, {}, settings, { + type : settings.method || settings.type, + data : data, + url : settings.base + url, + beforeSend : settings.beforeXHR, + success : function() {}, + failure : function() {}, + complete : function() {} + }); + + module.debug('Querying URL', ajaxSettings.url); + module.verbose('Using AJAX settings', ajaxSettings); + if(settings.cache === 'local' && module.read.cachedResponse(url)) { + module.debug('Response returned from local cache'); + module.request = module.create.request(); + module.request.resolveWith(context, [ module.read.cachedResponse(url) ]); + return; + } + + if( !settings.throttle ) { + module.debug('Sending request', data, ajaxSettings.method); + module.send.request(); + } + else { + if(!settings.throttleFirstRequest && !module.timer) { + module.debug('Sending request', data, ajaxSettings.method); + module.send.request(); + module.timer = setTimeout(function(){}, settings.throttle); + } + else { + module.debug('Throttling request', settings.throttle); + clearTimeout(module.timer); + module.timer = setTimeout(function() { + if(module.timer) { + delete module.timer; + } + module.debug('Sending throttled request', data, ajaxSettings.method); + module.send.request(); + }, settings.throttle); + } + } + + }, + + should: { + removeError: function() { + return ( settings.hideError === true || (settings.hideError === 'auto' && !module.is.form()) ); + } + }, + + is: { + disabled: function() { + return ($module.filter(selector.disabled).length > 0); + }, + expectingJSON: function() { + return settings.dataType === 'json' || settings.dataType === 'jsonp'; + }, + form: function() { + return $module.is('form') || $context.is('form'); + }, + mocked: function() { + return (settings.mockResponse || settings.mockResponseAsync || settings.response || settings.responseAsync); + }, + input: function() { + return $module.is('input'); + }, + loading: function() { + return (module.request) + ? (module.request.state() == 'pending') + : false + ; + }, + abortedRequest: function(xhr) { + if(xhr && xhr.readyState !== undefined && xhr.readyState === 0) { + module.verbose('XHR request determined to be aborted'); + return true; + } + else { + module.verbose('XHR request was not aborted'); + return false; + } + }, + validResponse: function(response) { + if( (!module.is.expectingJSON()) || !$.isFunction(settings.successTest) ) { + module.verbose('Response is not JSON, skipping validation', settings.successTest, response); + return true; + } + module.debug('Checking JSON returned success', settings.successTest, response); + if( settings.successTest(response) ) { + module.debug('Response passed success test', response); + return true; + } + else { + module.debug('Response failed success test', response); + return false; + } + } + }, + + was: { + cancelled: function() { + return (module.cancelled || false); + }, + succesful: function() { + return (module.request && module.request.state() == 'resolved'); + }, + failure: function() { + return (module.request && module.request.state() == 'rejected'); + }, + complete: function() { + return (module.request && (module.request.state() == 'resolved' || module.request.state() == 'rejected') ); + } + }, + + add: { + urlData: function(url, urlData) { + var + requiredVariables, + optionalVariables + ; + if(url) { + requiredVariables = url.match(settings.regExp.required); + optionalVariables = url.match(settings.regExp.optional); + urlData = urlData || settings.urlData; + if(requiredVariables) { + module.debug('Looking for required URL variables', requiredVariables); + $.each(requiredVariables, function(index, templatedString) { + var + // allow legacy {$var} style + variable = (templatedString.indexOf('$') !== -1) + ? templatedString.substr(2, templatedString.length - 3) + : templatedString.substr(1, templatedString.length - 2), + value = ($.isPlainObject(urlData) && urlData[variable] !== undefined) + ? urlData[variable] + : ($module.data(variable) !== undefined) + ? $module.data(variable) + : ($context.data(variable) !== undefined) + ? $context.data(variable) + : urlData[variable] + ; + // remove value + if(value === undefined) { + module.error(error.requiredParameter, variable, url); + url = false; + return false; + } + else { + module.verbose('Found required variable', variable, value); + value = (settings.encodeParameters) + ? module.get.urlEncodedValue(value) + : value + ; + url = url.replace(templatedString, value); + } + }); + } + if(optionalVariables) { + module.debug('Looking for optional URL variables', requiredVariables); + $.each(optionalVariables, function(index, templatedString) { + var + // allow legacy {/$var} style + variable = (templatedString.indexOf('$') !== -1) + ? templatedString.substr(3, templatedString.length - 4) + : templatedString.substr(2, templatedString.length - 3), + value = ($.isPlainObject(urlData) && urlData[variable] !== undefined) + ? urlData[variable] + : ($module.data(variable) !== undefined) + ? $module.data(variable) + : ($context.data(variable) !== undefined) + ? $context.data(variable) + : urlData[variable] + ; + // optional replacement + if(value !== undefined) { + module.verbose('Optional variable Found', variable, value); + url = url.replace(templatedString, value); + } + else { + module.verbose('Optional variable not found', variable); + // remove preceding slash if set + if(url.indexOf('/' + templatedString) !== -1) { + url = url.replace('/' + templatedString, ''); + } + else { + url = url.replace(templatedString, ''); + } + } + }); + } + } + return url; + }, + formData: function(data) { + var + canSerialize = ($.fn.serializeObject !== undefined), + formData = (canSerialize) + ? $form.serializeObject() + : $form.serialize(), + hasOtherData + ; + data = data || settings.data; + hasOtherData = $.isPlainObject(data); + + if(hasOtherData) { + if(canSerialize) { + module.debug('Extending existing data with form data', data, formData); + data = $.extend(true, {}, data, formData); + } + else { + module.error(error.missingSerialize); + module.debug('Cant extend data. Replacing data with form data', data, formData); + data = formData; + } + } + else { + module.debug('Adding form data', formData); + data = formData; + } + return data; + } + }, + + send: { + request: function() { + module.set.loading(); + module.request = module.create.request(); + if( module.is.mocked() ) { + module.mockedXHR = module.create.mockedXHR(); + } + else { + module.xhr = module.create.xhr(); + } + settings.onRequest.call(context, module.request, module.xhr); + } + }, + + event: { + trigger: function(event) { + module.query(); + if(event.type == 'submit' || event.type == 'click') { + event.preventDefault(); + } + }, + xhr: { + always: function() { + // nothing special + }, + done: function(response, textStatus, xhr) { + var + context = this, + elapsedTime = (new Date().getTime() - requestStartTime), + timeLeft = (settings.loadingDuration - elapsedTime), + translatedResponse = ( $.isFunction(settings.onResponse) ) + ? module.is.expectingJSON() + ? settings.onResponse.call(context, $.extend(true, {}, response)) + : settings.onResponse.call(context, response) + : false + ; + timeLeft = (timeLeft > 0) + ? timeLeft + : 0 + ; + if(translatedResponse) { + module.debug('Modified API response in onResponse callback', settings.onResponse, translatedResponse, response); + response = translatedResponse; + } + if(timeLeft > 0) { + module.debug('Response completed early delaying state change by', timeLeft); + } + setTimeout(function() { + if( module.is.validResponse(response) ) { + module.request.resolveWith(context, [response, xhr]); + } + else { + module.request.rejectWith(context, [xhr, 'invalid']); + } + }, timeLeft); + }, + fail: function(xhr, status, httpMessage) { + var + context = this, + elapsedTime = (new Date().getTime() - requestStartTime), + timeLeft = (settings.loadingDuration - elapsedTime) + ; + timeLeft = (timeLeft > 0) + ? timeLeft + : 0 + ; + if(timeLeft > 0) { + module.debug('Response completed early delaying state change by', timeLeft); + } + setTimeout(function() { + if( module.is.abortedRequest(xhr) ) { + module.request.rejectWith(context, [xhr, 'aborted', httpMessage]); + } + else { + module.request.rejectWith(context, [xhr, 'error', status, httpMessage]); + } + }, timeLeft); + } + }, + request: { + done: function(response, xhr) { + module.debug('Successful API Response', response); + if(settings.cache === 'local' && url) { + module.write.cachedResponse(url, response); + module.debug('Saving server response locally', module.cache); + } + settings.onSuccess.call(context, response, $module, xhr); + }, + complete: function(firstParameter, secondParameter) { + var + xhr, + response + ; + // have to guess callback parameters based on request success + if( module.was.succesful() ) { + response = firstParameter; + xhr = secondParameter; + } + else { + xhr = firstParameter; + response = module.get.responseFromXHR(xhr); + } + module.remove.loading(); + settings.onComplete.call(context, response, $module, xhr); + }, + fail: function(xhr, status, httpMessage) { + var + // pull response from xhr if available + response = module.get.responseFromXHR(xhr), + errorMessage = module.get.errorFromRequest(response, status, httpMessage) + ; + if(status == 'aborted') { + module.debug('XHR Aborted (Most likely caused by page navigation or CORS Policy)', status, httpMessage); + settings.onAbort.call(context, status, $module, xhr); + return true; + } + else if(status == 'invalid') { + module.debug('JSON did not pass success test. A server-side error has most likely occurred', response); + } + else if(status == 'error') { + if(xhr !== undefined) { + module.debug('XHR produced a server error', status, httpMessage); + // make sure we have an error to display to console + if( xhr.status != 200 && httpMessage !== undefined && httpMessage !== '') { + module.error(error.statusMessage + httpMessage, ajaxSettings.url); + } + settings.onError.call(context, errorMessage, $module, xhr); + } + } + + if(settings.errorDuration && status !== 'aborted') { + module.debug('Adding error state'); + module.set.error(); + if( module.should.removeError() ) { + setTimeout(module.remove.error, settings.errorDuration); + } + } + module.debug('API Request failed', errorMessage, xhr); + settings.onFailure.call(context, response, $module, xhr); + } + } + }, + + create: { + + request: function() { + // api request promise + return $.Deferred() + .always(module.event.request.complete) + .done(module.event.request.done) + .fail(module.event.request.fail) + ; + }, + + mockedXHR: function () { + var + // xhr does not simulate these properties of xhr but must return them + textStatus = false, + status = false, + httpMessage = false, + responder = settings.mockResponse || settings.response, + asyncResponder = settings.mockResponseAsync || settings.responseAsync, + asyncCallback, + response, + mockedXHR + ; + + mockedXHR = $.Deferred() + .always(module.event.xhr.complete) + .done(module.event.xhr.done) + .fail(module.event.xhr.fail) + ; + + if(responder) { + if( $.isFunction(responder) ) { + module.debug('Using specified synchronous callback', responder); + response = responder.call(context, requestSettings); + } + else { + module.debug('Using settings specified response', responder); + response = responder; + } + // simulating response + mockedXHR.resolveWith(context, [ response, textStatus, { responseText: response }]); + } + else if( $.isFunction(asyncResponder) ) { + asyncCallback = function(response) { + module.debug('Async callback returned response', response); + + if(response) { + mockedXHR.resolveWith(context, [ response, textStatus, { responseText: response }]); + } + else { + mockedXHR.rejectWith(context, [{ responseText: response }, status, httpMessage]); + } + }; + module.debug('Using specified async response callback', asyncResponder); + asyncResponder.call(context, requestSettings, asyncCallback); + } + return mockedXHR; + }, + + xhr: function() { + var + xhr + ; + // ajax request promise + xhr = $.ajax(ajaxSettings) + .always(module.event.xhr.always) + .done(module.event.xhr.done) + .fail(module.event.xhr.fail) + ; + module.verbose('Created server request', xhr, ajaxSettings); + return xhr; + } + }, + + set: { + error: function() { + module.verbose('Adding error state to element', $context); + $context.addClass(className.error); + }, + loading: function() { + module.verbose('Adding loading state to element', $context); + $context.addClass(className.loading); + requestStartTime = new Date().getTime(); + } + }, + + remove: { + error: function() { + module.verbose('Removing error state from element', $context); + $context.removeClass(className.error); + }, + loading: function() { + module.verbose('Removing loading state from element', $context); + $context.removeClass(className.loading); + } + }, + + get: { + responseFromXHR: function(xhr) { + return $.isPlainObject(xhr) + ? (module.is.expectingJSON()) + ? module.decode.json(xhr.responseText) + : xhr.responseText + : false + ; + }, + errorFromRequest: function(response, status, httpMessage) { + return ($.isPlainObject(response) && response.error !== undefined) + ? response.error // use json error message + : (settings.error[status] !== undefined) // use server error message + ? settings.error[status] + : httpMessage + ; + }, + request: function() { + return module.request || false; + }, + xhr: function() { + return module.xhr || false; + }, + settings: function() { + var + runSettings + ; + runSettings = settings.beforeSend.call(context, settings); + if(runSettings) { + if(runSettings.success !== undefined) { + module.debug('Legacy success callback detected', runSettings); + module.error(error.legacyParameters, runSettings.success); + runSettings.onSuccess = runSettings.success; + } + if(runSettings.failure !== undefined) { + module.debug('Legacy failure callback detected', runSettings); + module.error(error.legacyParameters, runSettings.failure); + runSettings.onFailure = runSettings.failure; + } + if(runSettings.complete !== undefined) { + module.debug('Legacy complete callback detected', runSettings); + module.error(error.legacyParameters, runSettings.complete); + runSettings.onComplete = runSettings.complete; + } + } + if(runSettings === undefined) { + module.error(error.noReturnedValue); + } + if(runSettings === false) { + return runSettings; + } + return (runSettings !== undefined) + ? $.extend(true, {}, runSettings) + : $.extend(true, {}, settings) + ; + }, + urlEncodedValue: function(value) { + var + decodedValue = window.decodeURIComponent(value), + encodedValue = window.encodeURIComponent(value), + alreadyEncoded = (decodedValue !== value) + ; + if(alreadyEncoded) { + module.debug('URL value is already encoded, avoiding double encoding', value); + return value; + } + module.verbose('Encoding value using encodeURIComponent', value, encodedValue); + return encodedValue; + }, + defaultData: function() { + var + data = {} + ; + if( !$.isWindow(element) ) { + if( module.is.input() ) { + data.value = $module.val(); + } + else if( module.is.form() ) { + + } + else { + data.text = $module.text(); + } + } + return data; + }, + event: function() { + if( $.isWindow(element) || settings.on == 'now' ) { + module.debug('API called without element, no events attached'); + return false; + } + else if(settings.on == 'auto') { + if( $module.is('input') ) { + return (element.oninput !== undefined) + ? 'input' + : (element.onpropertychange !== undefined) + ? 'propertychange' + : 'keyup' + ; + } + else if( $module.is('form') ) { + return 'submit'; + } + else { + return 'click'; + } + } + else { + return settings.on; + } + }, + templatedURL: function(action) { + action = action || $module.data(metadata.action) || settings.action || false; + url = $module.data(metadata.url) || settings.url || false; + if(url) { + module.debug('Using specified url', url); + return url; + } + if(action) { + module.debug('Looking up url for action', action, settings.api); + if(settings.api[action] === undefined && !module.is.mocked()) { + module.error(error.missingAction, settings.action, settings.api); + return; + } + url = settings.api[action]; + } + else if( module.is.form() ) { + url = $module.attr('action') || $context.attr('action') || false; + module.debug('No url or action specified, defaulting to form action', url); + } + return url; + } + }, + + abort: function() { + var + xhr = module.get.xhr() + ; + if( xhr && xhr.state() !== 'resolved') { + module.debug('Cancelling API request'); + xhr.abort(); + } + }, + + // reset state + reset: function() { + module.remove.error(); + module.remove.loading(); + }, + + setting: function(name, value) { + module.debug('Changing setting', name, value); + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + if($.isPlainObject(settings[name])) { + $.extend(true, settings[name], value); + } + else { + settings[name] = value; + } + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(!settings.silent && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(!settings.silent && settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + if(!settings.silent) { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + } + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + //'Element' : element, + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 500); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + object = instance, + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && object !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) { + object = object[camelCaseValue]; + } + else if( object[camelCaseValue] !== undefined ) { + found = object[camelCaseValue]; + return false; + } + else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) { + object = object[value]; + } + else if( object[value] !== undefined ) { + found = object[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + instance.invoke('destroy'); + } + module.initialize(); + } + }) + ; + + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.api.settings = { + + name : 'API', + namespace : 'api', + + debug : false, + verbose : false, + performance : true, + + // object containing all templates endpoints + api : {}, + + // whether to cache responses + cache : true, + + // whether new requests should abort previous requests + interruptRequests : true, + + // event binding + on : 'auto', + + // context for applying state classes + stateContext : false, + + // duration for loading state + loadingDuration : 0, + + // whether to hide errors after a period of time + hideError : 'auto', + + // duration for error state + errorDuration : 2000, + + // whether parameters should be encoded with encodeURIComponent + encodeParameters : true, + + // API action to use + action : false, + + // templated URL to use + url : false, + + // base URL to apply to all endpoints + base : '', + + // data that will + urlData : {}, + + // whether to add default data to url data + defaultData : true, + + // whether to serialize closest form + serializeForm : false, + + // how long to wait before request should occur + throttle : 0, + + // whether to throttle first request or only repeated + throttleFirstRequest : true, + + // standard ajax settings + method : 'get', + data : {}, + dataType : 'json', + + // mock response + mockResponse : false, + mockResponseAsync : false, + + // aliases for mock + response : false, + responseAsync : false, + + // callbacks before request + beforeSend : function(settings) { return settings; }, + beforeXHR : function(xhr) {}, + onRequest : function(promise, xhr) {}, + + // after request + onResponse : false, // function(response) { }, + + // response was successful, if JSON passed validation + onSuccess : function(response, $module) {}, + + // request finished without aborting + onComplete : function(response, $module) {}, + + // failed JSON success test + onFailure : function(response, $module) {}, + + // server error + onError : function(errorMessage, $module) {}, + + // request aborted + onAbort : function(errorMessage, $module) {}, + + successTest : false, + + // errors + error : { + beforeSend : 'The before send function has aborted the request', + error : 'There was an error with your request', + exitConditions : 'API Request Aborted. Exit conditions met', + JSONParse : 'JSON could not be parsed during error handling', + legacyParameters : 'You are using legacy API success callback names', + method : 'The method you called is not defined', + missingAction : 'API action used but no url was defined', + missingSerialize : 'jquery-serialize-object is required to add form data to an existing data object', + missingURL : 'No URL specified for api event', + noReturnedValue : 'The beforeSend callback must return a settings object, beforeSend ignored.', + noStorage : 'Caching responses locally requires session storage', + parseError : 'There was an error parsing your request', + requiredParameter : 'Missing a required URL parameter: ', + statusMessage : 'Server gave an error: ', + timeout : 'Your request timed out' + }, + + regExp : { + required : /\{\$*[A-z0-9]+\}/g, + optional : /\{\/\$*[A-z0-9]+\}/g, + }, + + className: { + loading : 'loading', + error : 'error' + }, + + selector: { + disabled : '.disabled', + form : 'form' + }, + + metadata: { + action : 'action', + url : 'url' + } +}; + + + +})( jQuery, window, document ); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/behaviors/form.js b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/behaviors/form.js new file mode 100644 index 00000000..19d0945f --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/behaviors/form.js @@ -0,0 +1,1706 @@ +/*! + * # Semantic UI - Form Validation + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +'use strict'; + +window = (typeof window != 'undefined' && window.Math == Math) + ? window + : (typeof self != 'undefined' && self.Math == Math) + ? self + : Function('return this')() +; + +$.fn.form = function(parameters) { + var + $allModules = $(this), + moduleSelector = $allModules.selector || '', + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + legacyParameters = arguments[1], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + returnedValue + ; + $allModules + .each(function() { + var + $module = $(this), + element = this, + + formErrors = [], + keyHeldDown = false, + + // set at run-time + $field, + $group, + $message, + $prompt, + $submit, + $clear, + $reset, + + settings, + validation, + + metadata, + selector, + className, + regExp, + error, + + namespace, + moduleNamespace, + eventNamespace, + + instance, + module + ; + + module = { + + initialize: function() { + + // settings grabbed at run time + module.get.settings(); + if(methodInvoked) { + if(instance === undefined) { + module.instantiate(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + instance.invoke('destroy'); + } + module.verbose('Initializing form validation', $module, settings); + module.bindEvents(); + module.set.defaults(); + module.instantiate(); + } + }, + + instantiate: function() { + module.verbose('Storing instance of module', module); + instance = module; + $module + .data(moduleNamespace, module) + ; + }, + + destroy: function() { + module.verbose('Destroying previous module', instance); + module.removeEvents(); + $module + .removeData(moduleNamespace) + ; + }, + + refresh: function() { + module.verbose('Refreshing selector cache'); + $field = $module.find(selector.field); + $group = $module.find(selector.group); + $message = $module.find(selector.message); + $prompt = $module.find(selector.prompt); + + $submit = $module.find(selector.submit); + $clear = $module.find(selector.clear); + $reset = $module.find(selector.reset); + }, + + submit: function() { + module.verbose('Submitting form', $module); + $module + .submit() + ; + }, + + attachEvents: function(selector, action) { + action = action || 'submit'; + $(selector) + .on('click' + eventNamespace, function(event) { + module[action](); + event.preventDefault(); + }) + ; + }, + + bindEvents: function() { + module.verbose('Attaching form events'); + $module + .on('submit' + eventNamespace, module.validate.form) + .on('blur' + eventNamespace, selector.field, module.event.field.blur) + .on('click' + eventNamespace, selector.submit, module.submit) + .on('click' + eventNamespace, selector.reset, module.reset) + .on('click' + eventNamespace, selector.clear, module.clear) + ; + if(settings.keyboardShortcuts) { + $module + .on('keydown' + eventNamespace, selector.field, module.event.field.keydown) + ; + } + $field + .each(function() { + var + $input = $(this), + type = $input.prop('type'), + inputEvent = module.get.changeEvent(type, $input) + ; + $(this) + .on(inputEvent + eventNamespace, module.event.field.change) + ; + }) + ; + }, + + clear: function() { + $field + .each(function () { + var + $field = $(this), + $element = $field.parent(), + $fieldGroup = $field.closest($group), + $prompt = $fieldGroup.find(selector.prompt), + defaultValue = $field.data(metadata.defaultValue) || '', + isCheckbox = $element.is(selector.uiCheckbox), + isDropdown = $element.is(selector.uiDropdown), + isErrored = $fieldGroup.hasClass(className.error) + ; + if(isErrored) { + module.verbose('Resetting error on field', $fieldGroup); + $fieldGroup.removeClass(className.error); + $prompt.remove(); + } + if(isDropdown) { + module.verbose('Resetting dropdown value', $element, defaultValue); + $element.dropdown('clear'); + } + else if(isCheckbox) { + $field.prop('checked', false); + } + else { + module.verbose('Resetting field value', $field, defaultValue); + $field.val(''); + } + }) + ; + }, + + reset: function() { + $field + .each(function () { + var + $field = $(this), + $element = $field.parent(), + $fieldGroup = $field.closest($group), + $prompt = $fieldGroup.find(selector.prompt), + defaultValue = $field.data(metadata.defaultValue), + isCheckbox = $element.is(selector.uiCheckbox), + isDropdown = $element.is(selector.uiDropdown), + isErrored = $fieldGroup.hasClass(className.error) + ; + if(defaultValue === undefined) { + return; + } + if(isErrored) { + module.verbose('Resetting error on field', $fieldGroup); + $fieldGroup.removeClass(className.error); + $prompt.remove(); + } + if(isDropdown) { + module.verbose('Resetting dropdown value', $element, defaultValue); + $element.dropdown('restore defaults'); + } + else if(isCheckbox) { + module.verbose('Resetting checkbox value', $element, defaultValue); + $field.prop('checked', defaultValue); + } + else { + module.verbose('Resetting field value', $field, defaultValue); + $field.val(defaultValue); + } + }) + ; + }, + + determine: { + isValid: function() { + var + allValid = true + ; + $.each(validation, function(fieldName, field) { + if( !( module.validate.field(field, fieldName, true) ) ) { + allValid = false; + } + }); + return allValid; + } + }, + + is: { + bracketedRule: function(rule) { + return (rule.type && rule.type.match(settings.regExp.bracket)); + }, + shorthandFields: function(fields) { + var + fieldKeys = Object.keys(fields), + firstRule = fields[fieldKeys[0]] + ; + return module.is.shorthandRules(firstRule); + }, + // duck type rule test + shorthandRules: function(rules) { + return (typeof rules == 'string' || $.isArray(rules)); + }, + empty: function($field) { + if(!$field || $field.length === 0) { + return true; + } + else if($field.is('input[type="checkbox"]')) { + return !$field.is(':checked'); + } + else { + return module.is.blank($field); + } + }, + blank: function($field) { + return $.trim($field.val()) === ''; + }, + valid: function(field) { + var + allValid = true + ; + if(field) { + module.verbose('Checking if field is valid', field); + return module.validate.field(validation[field], field, false); + } + else { + module.verbose('Checking if form is valid'); + $.each(validation, function(fieldName, field) { + if( !module.is.valid(fieldName) ) { + allValid = false; + } + }); + return allValid; + } + } + }, + + removeEvents: function() { + $module + .off(eventNamespace) + ; + $field + .off(eventNamespace) + ; + $submit + .off(eventNamespace) + ; + $field + .off(eventNamespace) + ; + }, + + event: { + field: { + keydown: function(event) { + var + $field = $(this), + key = event.which, + isInput = $field.is(selector.input), + isCheckbox = $field.is(selector.checkbox), + isInDropdown = ($field.closest(selector.uiDropdown).length > 0), + keyCode = { + enter : 13, + escape : 27 + } + ; + if( key == keyCode.escape) { + module.verbose('Escape key pressed blurring field'); + $field + .blur() + ; + } + if(!event.ctrlKey && key == keyCode.enter && isInput && !isInDropdown && !isCheckbox) { + if(!keyHeldDown) { + $field + .one('keyup' + eventNamespace, module.event.field.keyup) + ; + module.submit(); + module.debug('Enter pressed on input submitting form'); + } + keyHeldDown = true; + } + }, + keyup: function() { + keyHeldDown = false; + }, + blur: function(event) { + var + $field = $(this), + $fieldGroup = $field.closest($group), + validationRules = module.get.validation($field) + ; + if( $fieldGroup.hasClass(className.error) ) { + module.debug('Revalidating field', $field, validationRules); + if(validationRules) { + module.validate.field( validationRules ); + } + } + else if(settings.on == 'blur') { + if(validationRules) { + module.validate.field( validationRules ); + } + } + }, + change: function(event) { + var + $field = $(this), + $fieldGroup = $field.closest($group), + validationRules = module.get.validation($field) + ; + if(validationRules && (settings.on == 'change' || ( $fieldGroup.hasClass(className.error) && settings.revalidate) )) { + clearTimeout(module.timer); + module.timer = setTimeout(function() { + module.debug('Revalidating field', $field, module.get.validation($field)); + module.validate.field( validationRules ); + }, settings.delay); + } + } + } + + }, + + get: { + ancillaryValue: function(rule) { + if(!rule.type || (!rule.value && !module.is.bracketedRule(rule))) { + return false; + } + return (rule.value !== undefined) + ? rule.value + : rule.type.match(settings.regExp.bracket)[1] + '' + ; + }, + ruleName: function(rule) { + if( module.is.bracketedRule(rule) ) { + return rule.type.replace(rule.type.match(settings.regExp.bracket)[0], ''); + } + return rule.type; + }, + changeEvent: function(type, $input) { + if(type == 'checkbox' || type == 'radio' || type == 'hidden' || $input.is('select')) { + return 'change'; + } + else { + return module.get.inputEvent(); + } + }, + inputEvent: function() { + return (document.createElement('input').oninput !== undefined) + ? 'input' + : (document.createElement('input').onpropertychange !== undefined) + ? 'propertychange' + : 'keyup' + ; + }, + fieldsFromShorthand: function(fields) { + var + fullFields = {} + ; + $.each(fields, function(name, rules) { + if(typeof rules == 'string') { + rules = [rules]; + } + fullFields[name] = { + rules: [] + }; + $.each(rules, function(index, rule) { + fullFields[name].rules.push({ type: rule }); + }); + }); + return fullFields; + }, + prompt: function(rule, field) { + var + ruleName = module.get.ruleName(rule), + ancillary = module.get.ancillaryValue(rule), + $field = module.get.field(field.identifier), + value = $field.val(), + prompt = $.isFunction(rule.prompt) + ? rule.prompt(value) + : rule.prompt || settings.prompt[ruleName] || settings.text.unspecifiedRule, + requiresValue = (prompt.search('{value}') !== -1), + requiresName = (prompt.search('{name}') !== -1), + $label, + name + ; + if(requiresValue) { + prompt = prompt.replace('{value}', $field.val()); + } + if(requiresName) { + $label = $field.closest(selector.group).find('label').eq(0); + name = ($label.length == 1) + ? $label.text() + : $field.prop('placeholder') || settings.text.unspecifiedField + ; + prompt = prompt.replace('{name}', name); + } + prompt = prompt.replace('{identifier}', field.identifier); + prompt = prompt.replace('{ruleValue}', ancillary); + if(!rule.prompt) { + module.verbose('Using default validation prompt for type', prompt, ruleName); + } + return prompt; + }, + settings: function() { + if($.isPlainObject(parameters)) { + var + keys = Object.keys(parameters), + isLegacySettings = (keys.length > 0) + ? (parameters[keys[0]].identifier !== undefined && parameters[keys[0]].rules !== undefined) + : false, + ruleKeys + ; + if(isLegacySettings) { + // 1.x (ducktyped) + settings = $.extend(true, {}, $.fn.form.settings, legacyParameters); + validation = $.extend({}, $.fn.form.settings.defaults, parameters); + module.error(settings.error.oldSyntax, element); + module.verbose('Extending settings from legacy parameters', validation, settings); + } + else { + // 2.x + if(parameters.fields && module.is.shorthandFields(parameters.fields)) { + parameters.fields = module.get.fieldsFromShorthand(parameters.fields); + } + settings = $.extend(true, {}, $.fn.form.settings, parameters); + validation = $.extend({}, $.fn.form.settings.defaults, settings.fields); + module.verbose('Extending settings', validation, settings); + } + } + else { + settings = $.fn.form.settings; + validation = $.fn.form.settings.defaults; + module.verbose('Using default form validation', validation, settings); + } + + // shorthand + namespace = settings.namespace; + metadata = settings.metadata; + selector = settings.selector; + className = settings.className; + regExp = settings.regExp; + error = settings.error; + moduleNamespace = 'module-' + namespace; + eventNamespace = '.' + namespace; + + // grab instance + instance = $module.data(moduleNamespace); + + // refresh selector cache + module.refresh(); + }, + field: function(identifier) { + module.verbose('Finding field with identifier', identifier); + identifier = module.escape.string(identifier); + if($field.filter('#' + identifier).length > 0 ) { + return $field.filter('#' + identifier); + } + else if( $field.filter('[name="' + identifier +'"]').length > 0 ) { + return $field.filter('[name="' + identifier +'"]'); + } + else if( $field.filter('[name="' + identifier +'[]"]').length > 0 ) { + return $field.filter('[name="' + identifier +'[]"]'); + } + else if( $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]').length > 0 ) { + return $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]'); + } + return $(''); + }, + fields: function(fields) { + var + $fields = $() + ; + $.each(fields, function(index, name) { + $fields = $fields.add( module.get.field(name) ); + }); + return $fields; + }, + validation: function($field) { + var + fieldValidation, + identifier + ; + if(!validation) { + return false; + } + $.each(validation, function(fieldName, field) { + identifier = field.identifier || fieldName; + if( module.get.field(identifier)[0] == $field[0] ) { + field.identifier = identifier; + fieldValidation = field; + } + }); + return fieldValidation || false; + }, + value: function (field) { + var + fields = [], + results + ; + fields.push(field); + results = module.get.values.call(element, fields); + return results[field]; + }, + values: function (fields) { + var + $fields = $.isArray(fields) + ? module.get.fields(fields) + : $field, + values = {} + ; + $fields.each(function(index, field) { + var + $field = $(field), + type = $field.prop('type'), + name = $field.prop('name'), + value = $field.val(), + isCheckbox = $field.is(selector.checkbox), + isRadio = $field.is(selector.radio), + isMultiple = (name.indexOf('[]') !== -1), + isChecked = (isCheckbox) + ? $field.is(':checked') + : false + ; + if(name) { + if(isMultiple) { + name = name.replace('[]', ''); + if(!values[name]) { + values[name] = []; + } + if(isCheckbox) { + if(isChecked) { + values[name].push(value || true); + } + else { + values[name].push(false); + } + } + else { + values[name].push(value); + } + } + else { + if(isRadio) { + if(values[name] === undefined || values[name] == false) { + values[name] = (isChecked) + ? value || true + : false + ; + } + } + else if(isCheckbox) { + if(isChecked) { + values[name] = value || true; + } + else { + values[name] = false; + } + } + else { + values[name] = value; + } + } + } + }); + return values; + } + }, + + has: { + + field: function(identifier) { + module.verbose('Checking for existence of a field with identifier', identifier); + identifier = module.escape.string(identifier); + if(typeof identifier !== 'string') { + module.error(error.identifier, identifier); + } + if($field.filter('#' + identifier).length > 0 ) { + return true; + } + else if( $field.filter('[name="' + identifier +'"]').length > 0 ) { + return true; + } + else if( $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]').length > 0 ) { + return true; + } + return false; + } + + }, + + escape: { + string: function(text) { + text = String(text); + return text.replace(regExp.escape, '\\$&'); + } + }, + + add: { + // alias + rule: function(name, rules) { + module.add.field(name, rules); + }, + field: function(name, rules) { + var + newValidation = {} + ; + if(module.is.shorthandRules(rules)) { + rules = $.isArray(rules) + ? rules + : [rules] + ; + newValidation[name] = { + rules: [] + }; + $.each(rules, function(index, rule) { + newValidation[name].rules.push({ type: rule }); + }); + } + else { + newValidation[name] = rules; + } + validation = $.extend({}, validation, newValidation); + module.debug('Adding rules', newValidation, validation); + }, + fields: function(fields) { + var + newValidation + ; + if(fields && module.is.shorthandFields(fields)) { + newValidation = module.get.fieldsFromShorthand(fields); + } + else { + newValidation = fields; + } + validation = $.extend({}, validation, newValidation); + }, + prompt: function(identifier, errors) { + var + $field = module.get.field(identifier), + $fieldGroup = $field.closest($group), + $prompt = $fieldGroup.children(selector.prompt), + promptExists = ($prompt.length !== 0) + ; + errors = (typeof errors == 'string') + ? [errors] + : errors + ; + module.verbose('Adding field error state', identifier); + $fieldGroup + .addClass(className.error) + ; + if(settings.inline) { + if(!promptExists) { + $prompt = settings.templates.prompt(errors); + $prompt + .appendTo($fieldGroup) + ; + } + $prompt + .html(errors[0]) + ; + if(!promptExists) { + if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) { + module.verbose('Displaying error with css transition', settings.transition); + $prompt.transition(settings.transition + ' in', settings.duration); + } + else { + module.verbose('Displaying error with fallback javascript animation'); + $prompt + .fadeIn(settings.duration) + ; + } + } + else { + module.verbose('Inline errors are disabled, no inline error added', identifier); + } + } + }, + errors: function(errors) { + module.debug('Adding form error messages', errors); + module.set.error(); + $message + .html( settings.templates.error(errors) ) + ; + } + }, + + remove: { + rule: function(field, rule) { + var + rules = $.isArray(rule) + ? rule + : [rule] + ; + if(rule == undefined) { + module.debug('Removed all rules'); + validation[field].rules = []; + return; + } + if(validation[field] == undefined || !$.isArray(validation[field].rules)) { + return; + } + $.each(validation[field].rules, function(index, rule) { + if(rules.indexOf(rule.type) !== -1) { + module.debug('Removed rule', rule.type); + validation[field].rules.splice(index, 1); + } + }); + }, + field: function(field) { + var + fields = $.isArray(field) + ? field + : [field] + ; + $.each(fields, function(index, field) { + module.remove.rule(field); + }); + }, + // alias + rules: function(field, rules) { + if($.isArray(field)) { + $.each(fields, function(index, field) { + module.remove.rule(field, rules); + }); + } + else { + module.remove.rule(field, rules); + } + }, + fields: function(fields) { + module.remove.field(fields); + }, + prompt: function(identifier) { + var + $field = module.get.field(identifier), + $fieldGroup = $field.closest($group), + $prompt = $fieldGroup.children(selector.prompt) + ; + $fieldGroup + .removeClass(className.error) + ; + if(settings.inline && $prompt.is(':visible')) { + module.verbose('Removing prompt for field', identifier); + if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) { + $prompt.transition(settings.transition + ' out', settings.duration, function() { + $prompt.remove(); + }); + } + else { + $prompt + .fadeOut(settings.duration, function(){ + $prompt.remove(); + }) + ; + } + } + } + }, + + set: { + success: function() { + $module + .removeClass(className.error) + .addClass(className.success) + ; + }, + defaults: function () { + $field + .each(function () { + var + $field = $(this), + isCheckbox = ($field.filter(selector.checkbox).length > 0), + value = (isCheckbox) + ? $field.is(':checked') + : $field.val() + ; + $field.data(metadata.defaultValue, value); + }) + ; + }, + error: function() { + $module + .removeClass(className.success) + .addClass(className.error) + ; + }, + value: function (field, value) { + var + fields = {} + ; + fields[field] = value; + return module.set.values.call(element, fields); + }, + values: function (fields) { + if($.isEmptyObject(fields)) { + return; + } + $.each(fields, function(key, value) { + var + $field = module.get.field(key), + $element = $field.parent(), + isMultiple = $.isArray(value), + isCheckbox = $element.is(selector.uiCheckbox), + isDropdown = $element.is(selector.uiDropdown), + isRadio = ($field.is(selector.radio) && isCheckbox), + fieldExists = ($field.length > 0), + $multipleField + ; + if(fieldExists) { + if(isMultiple && isCheckbox) { + module.verbose('Selecting multiple', value, $field); + $element.checkbox('uncheck'); + $.each(value, function(index, value) { + $multipleField = $field.filter('[value="' + value + '"]'); + $element = $multipleField.parent(); + if($multipleField.length > 0) { + $element.checkbox('check'); + } + }); + } + else if(isRadio) { + module.verbose('Selecting radio value', value, $field); + $field.filter('[value="' + value + '"]') + .parent(selector.uiCheckbox) + .checkbox('check') + ; + } + else if(isCheckbox) { + module.verbose('Setting checkbox value', value, $element); + if(value === true) { + $element.checkbox('check'); + } + else { + $element.checkbox('uncheck'); + } + } + else if(isDropdown) { + module.verbose('Setting dropdown value', value, $element); + $element.dropdown('set selected', value); + } + else { + module.verbose('Setting field value', value, $field); + $field.val(value); + } + } + }); + } + }, + + validate: { + + form: function(event, ignoreCallbacks) { + var + values = module.get.values(), + apiRequest + ; + + // input keydown event will fire submit repeatedly by browser default + if(keyHeldDown) { + return false; + } + + // reset errors + formErrors = []; + if( module.determine.isValid() ) { + module.debug('Form has no validation errors, submitting'); + module.set.success(); + if(ignoreCallbacks !== true) { + return settings.onSuccess.call(element, event, values); + } + } + else { + module.debug('Form has errors'); + module.set.error(); + if(!settings.inline) { + module.add.errors(formErrors); + } + // prevent ajax submit + if($module.data('moduleApi') !== undefined) { + event.stopImmediatePropagation(); + } + if(ignoreCallbacks !== true) { + return settings.onFailure.call(element, formErrors, values); + } + } + }, + + // takes a validation object and returns whether field passes validation + field: function(field, fieldName, showErrors) { + showErrors = (showErrors !== undefined) + ? showErrors + : true + ; + if(typeof field == 'string') { + module.verbose('Validating field', field); + fieldName = field; + field = validation[field]; + } + var + identifier = field.identifier || fieldName, + $field = module.get.field(identifier), + $dependsField = (field.depends) + ? module.get.field(field.depends) + : false, + fieldValid = true, + fieldErrors = [] + ; + if(!field.identifier) { + module.debug('Using field name as identifier', identifier); + field.identifier = identifier; + } + if($field.prop('disabled')) { + module.debug('Field is disabled. Skipping', identifier); + fieldValid = true; + } + else if(field.optional && module.is.blank($field)){ + module.debug('Field is optional and blank. Skipping', identifier); + fieldValid = true; + } + else if(field.depends && module.is.empty($dependsField)) { + module.debug('Field depends on another value that is not present or empty. Skipping', $dependsField); + fieldValid = true; + } + else if(field.rules !== undefined) { + $.each(field.rules, function(index, rule) { + if( module.has.field(identifier) && !( module.validate.rule(field, rule) ) ) { + module.debug('Field is invalid', identifier, rule.type); + fieldErrors.push(module.get.prompt(rule, field)); + fieldValid = false; + } + }); + } + if(fieldValid) { + if(showErrors) { + module.remove.prompt(identifier, fieldErrors); + settings.onValid.call($field); + } + } + else { + if(showErrors) { + formErrors = formErrors.concat(fieldErrors); + module.add.prompt(identifier, fieldErrors); + settings.onInvalid.call($field, fieldErrors); + } + return false; + } + return true; + }, + + // takes validation rule and returns whether field passes rule + rule: function(field, rule) { + var + $field = module.get.field(field.identifier), + type = rule.type, + value = $field.val(), + isValid = true, + ancillary = module.get.ancillaryValue(rule), + ruleName = module.get.ruleName(rule), + ruleFunction = settings.rules[ruleName] + ; + if( !$.isFunction(ruleFunction) ) { + module.error(error.noRule, ruleName); + return; + } + // cast to string avoiding encoding special values + value = (value === undefined || value === '' || value === null) + ? '' + : $.trim(value + '') + ; + return ruleFunction.call($field, value, ancillary); + } + }, + + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(!settings.silent && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(!settings.silent && settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + if(!settings.silent) { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + } + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Element' : element, + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 500); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if($allModules.length > 1) { + title += ' ' + '(' + $allModules.length + ')'; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + object = instance, + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && object !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) { + object = object[camelCaseValue]; + } + else if( object[camelCaseValue] !== undefined ) { + found = object[camelCaseValue]; + return false; + } + else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) { + object = object[value]; + } + else if( object[value] !== undefined ) { + found = object[value]; + return false; + } + else { + return false; + } + }); + } + if( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + module.initialize(); + }) + ; + + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.form.settings = { + + name : 'Form', + namespace : 'form', + + debug : false, + verbose : false, + performance : true, + + fields : false, + + keyboardShortcuts : true, + on : 'submit', + inline : false, + + delay : 200, + revalidate : true, + + transition : 'scale', + duration : 200, + + onValid : function() {}, + onInvalid : function() {}, + onSuccess : function() { return true; }, + onFailure : function() { return false; }, + + metadata : { + defaultValue : 'default', + validate : 'validate' + }, + + regExp: { + htmlID : /^[a-zA-Z][\w:.-]*$/g, + bracket : /\[(.*)\]/i, + decimal : /^\d+\.?\d*$/, + email : /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i, + escape : /[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, + flags : /^\/(.*)\/(.*)?/, + integer : /^\-?\d+$/, + number : /^\-?\d*(\.\d+)?$/, + url : /(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/i + }, + + text: { + unspecifiedRule : 'Please enter a valid value', + unspecifiedField : 'This field' + }, + + prompt: { + empty : '{name} must have a value', + checked : '{name} must be checked', + email : '{name} must be a valid e-mail', + url : '{name} must be a valid url', + regExp : '{name} is not formatted correctly', + integer : '{name} must be an integer', + decimal : '{name} must be a decimal number', + number : '{name} must be set to a number', + is : '{name} must be "{ruleValue}"', + isExactly : '{name} must be exactly "{ruleValue}"', + not : '{name} cannot be set to "{ruleValue}"', + notExactly : '{name} cannot be set to exactly "{ruleValue}"', + contain : '{name} must contain "{ruleValue}"', + containExactly : '{name} must contain exactly "{ruleValue}"', + doesntContain : '{name} cannot contain "{ruleValue}"', + doesntContainExactly : '{name} cannot contain exactly "{ruleValue}"', + minLength : '{name} must be at least {ruleValue} characters', + length : '{name} must be at least {ruleValue} characters', + exactLength : '{name} must be exactly {ruleValue} characters', + maxLength : '{name} cannot be longer than {ruleValue} characters', + match : '{name} must match {ruleValue} field', + different : '{name} must have a different value than {ruleValue} field', + creditCard : '{name} must be a valid credit card number', + minCount : '{name} must have at least {ruleValue} choices', + exactCount : '{name} must have exactly {ruleValue} choices', + maxCount : '{name} must have {ruleValue} or less choices' + }, + + selector : { + checkbox : 'input[type="checkbox"], input[type="radio"]', + clear : '.clear', + field : 'input, textarea, select', + group : '.field', + input : 'input', + message : '.error.message', + prompt : '.prompt.label', + radio : 'input[type="radio"]', + reset : '.reset:not([type="reset"])', + submit : '.submit:not([type="submit"])', + uiCheckbox : '.ui.checkbox', + uiDropdown : '.ui.dropdown' + }, + + className : { + error : 'error', + label : 'ui prompt label', + pressed : 'down', + success : 'success' + }, + + error: { + identifier : 'You must specify a string identifier for each field', + method : 'The method you called is not defined.', + noRule : 'There is no rule matching the one you specified', + oldSyntax : 'Starting in 2.0 forms now only take a single settings object. Validation settings converted to new syntax automatically.' + }, + + templates: { + + // template that produces error message + error: function(errors) { + var + html = '
    ' + ; + $.each(errors, function(index, value) { + html += '
  • ' + value + '
  • '; + }); + html += '
'; + return $(html); + }, + + // template that produces label + prompt: function(errors) { + return $('
') + .addClass('ui basic red pointing prompt label') + .html(errors[0]) + ; + } + }, + + rules: { + + // is not empty or blank string + empty: function(value) { + return !(value === undefined || '' === value || $.isArray(value) && value.length === 0); + }, + + // checkbox checked + checked: function() { + return ($(this).filter(':checked').length > 0); + }, + + // is most likely an email + email: function(value){ + return $.fn.form.settings.regExp.email.test(value); + }, + + // value is most likely url + url: function(value) { + return $.fn.form.settings.regExp.url.test(value); + }, + + // matches specified regExp + regExp: function(value, regExp) { + if(regExp instanceof RegExp) { + return value.match(regExp); + } + var + regExpParts = regExp.match($.fn.form.settings.regExp.flags), + flags + ; + // regular expression specified as /baz/gi (flags) + if(regExpParts) { + regExp = (regExpParts.length >= 2) + ? regExpParts[1] + : regExp + ; + flags = (regExpParts.length >= 3) + ? regExpParts[2] + : '' + ; + } + return value.match( new RegExp(regExp, flags) ); + }, + + // is valid integer or matches range + integer: function(value, range) { + var + intRegExp = $.fn.form.settings.regExp.integer, + min, + max, + parts + ; + if( !range || ['', '..'].indexOf(range) !== -1) { + // do nothing + } + else if(range.indexOf('..') == -1) { + if(intRegExp.test(range)) { + min = max = range - 0; + } + } + else { + parts = range.split('..', 2); + if(intRegExp.test(parts[0])) { + min = parts[0] - 0; + } + if(intRegExp.test(parts[1])) { + max = parts[1] - 0; + } + } + return ( + intRegExp.test(value) && + (min === undefined || value >= min) && + (max === undefined || value <= max) + ); + }, + + // is valid number (with decimal) + decimal: function(value) { + return $.fn.form.settings.regExp.decimal.test(value); + }, + + // is valid number + number: function(value) { + return $.fn.form.settings.regExp.number.test(value); + }, + + // is value (case insensitive) + is: function(value, text) { + text = (typeof text == 'string') + ? text.toLowerCase() + : text + ; + value = (typeof value == 'string') + ? value.toLowerCase() + : value + ; + return (value == text); + }, + + // is value + isExactly: function(value, text) { + return (value == text); + }, + + // value is not another value (case insensitive) + not: function(value, notValue) { + value = (typeof value == 'string') + ? value.toLowerCase() + : value + ; + notValue = (typeof notValue == 'string') + ? notValue.toLowerCase() + : notValue + ; + return (value != notValue); + }, + + // value is not another value (case sensitive) + notExactly: function(value, notValue) { + return (value != notValue); + }, + + // value contains text (insensitive) + contains: function(value, text) { + // escape regex characters + text = text.replace($.fn.form.settings.regExp.escape, "\\$&"); + return (value.search( new RegExp(text, 'i') ) !== -1); + }, + + // value contains text (case sensitive) + containsExactly: function(value, text) { + // escape regex characters + text = text.replace($.fn.form.settings.regExp.escape, "\\$&"); + return (value.search( new RegExp(text) ) !== -1); + }, + + // value contains text (insensitive) + doesntContain: function(value, text) { + // escape regex characters + text = text.replace($.fn.form.settings.regExp.escape, "\\$&"); + return (value.search( new RegExp(text, 'i') ) === -1); + }, + + // value contains text (case sensitive) + doesntContainExactly: function(value, text) { + // escape regex characters + text = text.replace($.fn.form.settings.regExp.escape, "\\$&"); + return (value.search( new RegExp(text) ) === -1); + }, + + // is at least string length + minLength: function(value, requiredLength) { + return (value !== undefined) + ? (value.length >= requiredLength) + : false + ; + }, + + // see rls notes for 2.0.6 (this is a duplicate of minLength) + length: function(value, requiredLength) { + return (value !== undefined) + ? (value.length >= requiredLength) + : false + ; + }, + + // is exactly length + exactLength: function(value, requiredLength) { + return (value !== undefined) + ? (value.length == requiredLength) + : false + ; + }, + + // is less than length + maxLength: function(value, maxLength) { + return (value !== undefined) + ? (value.length <= maxLength) + : false + ; + }, + + // matches another field + match: function(value, identifier) { + var + $form = $(this), + matchingValue + ; + if( $('[data-validate="'+ identifier +'"]').length > 0 ) { + matchingValue = $('[data-validate="'+ identifier +'"]').val(); + } + else if($('#' + identifier).length > 0) { + matchingValue = $('#' + identifier).val(); + } + else if($('[name="' + identifier +'"]').length > 0) { + matchingValue = $('[name="' + identifier + '"]').val(); + } + else if( $('[name="' + identifier +'[]"]').length > 0 ) { + matchingValue = $('[name="' + identifier +'[]"]'); + } + return (matchingValue !== undefined) + ? ( value.toString() == matchingValue.toString() ) + : false + ; + }, + + // different than another field + different: function(value, identifier) { + // use either id or name of field + var + $form = $(this), + matchingValue + ; + if( $('[data-validate="'+ identifier +'"]').length > 0 ) { + matchingValue = $('[data-validate="'+ identifier +'"]').val(); + } + else if($('#' + identifier).length > 0) { + matchingValue = $('#' + identifier).val(); + } + else if($('[name="' + identifier +'"]').length > 0) { + matchingValue = $('[name="' + identifier + '"]').val(); + } + else if( $('[name="' + identifier +'[]"]').length > 0 ) { + matchingValue = $('[name="' + identifier +'[]"]'); + } + return (matchingValue !== undefined) + ? ( value.toString() !== matchingValue.toString() ) + : false + ; + }, + + creditCard: function(cardNumber, cardTypes) { + var + cards = { + visa: { + pattern : /^4/, + length : [16] + }, + amex: { + pattern : /^3[47]/, + length : [15] + }, + mastercard: { + pattern : /^5[1-5]/, + length : [16] + }, + discover: { + pattern : /^(6011|622(12[6-9]|1[3-9][0-9]|[2-8][0-9]{2}|9[0-1][0-9]|92[0-5]|64[4-9])|65)/, + length : [16] + }, + unionPay: { + pattern : /^(62|88)/, + length : [16, 17, 18, 19] + }, + jcb: { + pattern : /^35(2[89]|[3-8][0-9])/, + length : [16] + }, + maestro: { + pattern : /^(5018|5020|5038|6304|6759|676[1-3])/, + length : [12, 13, 14, 15, 16, 17, 18, 19] + }, + dinersClub: { + pattern : /^(30[0-5]|^36)/, + length : [14] + }, + laser: { + pattern : /^(6304|670[69]|6771)/, + length : [16, 17, 18, 19] + }, + visaElectron: { + pattern : /^(4026|417500|4508|4844|491(3|7))/, + length : [16] + } + }, + valid = {}, + validCard = false, + requiredTypes = (typeof cardTypes == 'string') + ? cardTypes.split(',') + : false, + unionPay, + validation + ; + + if(typeof cardNumber !== 'string' || cardNumber.length === 0) { + return; + } + + // allow dashes in card + cardNumber = cardNumber.replace(/[\-]/g, ''); + + // verify card types + if(requiredTypes) { + $.each(requiredTypes, function(index, type){ + // verify each card type + validation = cards[type]; + if(validation) { + valid = { + length : ($.inArray(cardNumber.length, validation.length) !== -1), + pattern : (cardNumber.search(validation.pattern) !== -1) + }; + if(valid.length && valid.pattern) { + validCard = true; + } + } + }); + + if(!validCard) { + return false; + } + } + + // skip luhn for UnionPay + unionPay = { + number : ($.inArray(cardNumber.length, cards.unionPay.length) !== -1), + pattern : (cardNumber.search(cards.unionPay.pattern) !== -1) + }; + if(unionPay.number && unionPay.pattern) { + return true; + } + + // verify luhn, adapted from + var + length = cardNumber.length, + multiple = 0, + producedValue = [ + [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], + [0, 2, 4, 6, 8, 1, 3, 5, 7, 9] + ], + sum = 0 + ; + while (length--) { + sum += producedValue[multiple][parseInt(cardNumber.charAt(length), 10)]; + multiple ^= 1; + } + return (sum % 10 === 0 && sum > 0); + }, + + minCount: function(value, minCount) { + if(minCount == 0) { + return true; + } + if(minCount == 1) { + return (value !== ''); + } + return (value.split(',').length >= minCount); + }, + + exactCount: function(value, exactCount) { + if(exactCount == 0) { + return (value === ''); + } + if(exactCount == 1) { + return (value !== '' && value.search(',') === -1); + } + return (value.split(',').length == exactCount); + }, + + maxCount: function(value, maxCount) { + if(maxCount == 0) { + return false; + } + if(maxCount == 1) { + return (value.search(',') === -1); + } + return (value.split(',').length <= maxCount); + } + } + +}; + +})( jQuery, window, document ); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/behaviors/visibility.js b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/behaviors/visibility.js new file mode 100644 index 00000000..8ae572c7 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/behaviors/visibility.js @@ -0,0 +1,1311 @@ +/*! + * # Semantic UI - Visibility + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +'use strict'; + +window = (typeof window != 'undefined' && window.Math == Math) + ? window + : (typeof self != 'undefined' && self.Math == Math) + ? self + : Function('return this')() +; + +$.fn.visibility = function(parameters) { + var + $allModules = $(this), + moduleSelector = $allModules.selector || '', + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + returnedValue, + + moduleCount = $allModules.length, + loadedCount = 0 + ; + + $allModules + .each(function() { + var + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.fn.visibility.settings, parameters) + : $.extend({}, $.fn.visibility.settings), + + className = settings.className, + namespace = settings.namespace, + error = settings.error, + metadata = settings.metadata, + + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + + $window = $(window), + + $module = $(this), + $context = $(settings.context), + + $placeholder, + + selector = $module.selector || '', + instance = $module.data(moduleNamespace), + + requestAnimationFrame = window.requestAnimationFrame + || window.mozRequestAnimationFrame + || window.webkitRequestAnimationFrame + || window.msRequestAnimationFrame + || function(callback) { setTimeout(callback, 0); }, + + element = this, + disabled = false, + + contextObserver, + observer, + module + ; + + module = { + + initialize: function() { + module.debug('Initializing', settings); + + module.setup.cache(); + + if( module.should.trackChanges() ) { + + if(settings.type == 'image') { + module.setup.image(); + } + if(settings.type == 'fixed') { + module.setup.fixed(); + } + + if(settings.observeChanges) { + module.observeChanges(); + } + module.bind.events(); + } + + module.save.position(); + if( !module.is.visible() ) { + module.error(error.visible, $module); + } + + if(settings.initialCheck) { + module.checkVisibility(); + } + module.instantiate(); + }, + + instantiate: function() { + module.debug('Storing instance', module); + $module + .data(moduleNamespace, module) + ; + instance = module; + }, + + destroy: function() { + module.verbose('Destroying previous module'); + if(observer) { + observer.disconnect(); + } + if(contextObserver) { + contextObserver.disconnect(); + } + $window + .off('load' + eventNamespace, module.event.load) + .off('resize' + eventNamespace, module.event.resize) + ; + $context + .off('scroll' + eventNamespace, module.event.scroll) + .off('scrollchange' + eventNamespace, module.event.scrollchange) + ; + if(settings.type == 'fixed') { + module.resetFixed(); + module.remove.placeholder(); + } + $module + .off(eventNamespace) + .removeData(moduleNamespace) + ; + }, + + observeChanges: function() { + if('MutationObserver' in window) { + contextObserver = new MutationObserver(module.event.contextChanged); + observer = new MutationObserver(module.event.changed); + contextObserver.observe(document, { + childList : true, + subtree : true + }); + observer.observe(element, { + childList : true, + subtree : true + }); + module.debug('Setting up mutation observer', observer); + } + }, + + bind: { + events: function() { + module.verbose('Binding visibility events to scroll and resize'); + if(settings.refreshOnLoad) { + $window + .on('load' + eventNamespace, module.event.load) + ; + } + $window + .on('resize' + eventNamespace, module.event.resize) + ; + // pub/sub pattern + $context + .off('scroll' + eventNamespace) + .on('scroll' + eventNamespace, module.event.scroll) + .on('scrollchange' + eventNamespace, module.event.scrollchange) + ; + } + }, + + event: { + changed: function(mutations) { + module.verbose('DOM tree modified, updating visibility calculations'); + module.timer = setTimeout(function() { + module.verbose('DOM tree modified, updating sticky menu'); + module.refresh(); + }, 100); + }, + contextChanged: function(mutations) { + [].forEach.call(mutations, function(mutation) { + if(mutation.removedNodes) { + [].forEach.call(mutation.removedNodes, function(node) { + if(node == element || $(node).find(element).length > 0) { + module.debug('Element removed from DOM, tearing down events'); + module.destroy(); + } + }); + } + }); + }, + resize: function() { + module.debug('Window resized'); + if(settings.refreshOnResize) { + requestAnimationFrame(module.refresh); + } + }, + load: function() { + module.debug('Page finished loading'); + requestAnimationFrame(module.refresh); + }, + // publishes scrollchange event on one scroll + scroll: function() { + if(settings.throttle) { + clearTimeout(module.timer); + module.timer = setTimeout(function() { + $context.triggerHandler('scrollchange' + eventNamespace, [ $context.scrollTop() ]); + }, settings.throttle); + } + else { + requestAnimationFrame(function() { + $context.triggerHandler('scrollchange' + eventNamespace, [ $context.scrollTop() ]); + }); + } + }, + // subscribes to scrollchange + scrollchange: function(event, scrollPosition) { + module.checkVisibility(scrollPosition); + }, + }, + + precache: function(images, callback) { + if (!(images instanceof Array)) { + images = [images]; + } + var + imagesLength = images.length, + loadedCounter = 0, + cache = [], + cacheImage = document.createElement('img'), + handleLoad = function() { + loadedCounter++; + if (loadedCounter >= images.length) { + if ($.isFunction(callback)) { + callback(); + } + } + } + ; + while (imagesLength--) { + cacheImage = document.createElement('img'); + cacheImage.onload = handleLoad; + cacheImage.onerror = handleLoad; + cacheImage.src = images[imagesLength]; + cache.push(cacheImage); + } + }, + + enableCallbacks: function() { + module.debug('Allowing callbacks to occur'); + disabled = false; + }, + + disableCallbacks: function() { + module.debug('Disabling all callbacks temporarily'); + disabled = true; + }, + + should: { + trackChanges: function() { + if(methodInvoked) { + module.debug('One time query, no need to bind events'); + return false; + } + module.debug('Callbacks being attached'); + return true; + } + }, + + setup: { + cache: function() { + module.cache = { + occurred : {}, + screen : {}, + element : {}, + }; + }, + image: function() { + var + src = $module.data(metadata.src) + ; + if(src) { + module.verbose('Lazy loading image', src); + settings.once = true; + settings.observeChanges = false; + + // show when top visible + settings.onOnScreen = function() { + module.debug('Image on screen', element); + module.precache(src, function() { + module.set.image(src, function() { + loadedCount++; + if(loadedCount == moduleCount) { + settings.onAllLoaded.call(this); + } + settings.onLoad.call(this); + }); + }); + }; + } + }, + fixed: function() { + module.debug('Setting up fixed'); + settings.once = false; + settings.observeChanges = false; + settings.initialCheck = true; + settings.refreshOnLoad = true; + if(!parameters.transition) { + settings.transition = false; + } + module.create.placeholder(); + module.debug('Added placeholder', $placeholder); + settings.onTopPassed = function() { + module.debug('Element passed, adding fixed position', $module); + module.show.placeholder(); + module.set.fixed(); + if(settings.transition) { + if($.fn.transition !== undefined) { + $module.transition(settings.transition, settings.duration); + } + } + }; + settings.onTopPassedReverse = function() { + module.debug('Element returned to position, removing fixed', $module); + module.hide.placeholder(); + module.remove.fixed(); + }; + } + }, + + create: { + placeholder: function() { + module.verbose('Creating fixed position placeholder'); + $placeholder = $module + .clone(false) + .css('display', 'none') + .addClass(className.placeholder) + .insertAfter($module) + ; + } + }, + + show: { + placeholder: function() { + module.verbose('Showing placeholder'); + $placeholder + .css('display', 'block') + .css('visibility', 'hidden') + ; + } + }, + hide: { + placeholder: function() { + module.verbose('Hiding placeholder'); + $placeholder + .css('display', 'none') + .css('visibility', '') + ; + } + }, + + set: { + fixed: function() { + module.verbose('Setting element to fixed position'); + $module + .addClass(className.fixed) + .css({ + position : 'fixed', + top : settings.offset + 'px', + left : 'auto', + zIndex : settings.zIndex + }) + ; + settings.onFixed.call(element); + }, + image: function(src, callback) { + $module + .attr('src', src) + ; + if(settings.transition) { + if( $.fn.transition !== undefined) { + if($module.hasClass(className.visible)) { + module.debug('Transition already occurred on this image, skipping animation'); + return; + } + $module.transition(settings.transition, settings.duration, callback); + } + else { + $module.fadeIn(settings.duration, callback); + } + } + else { + $module.show(); + } + } + }, + + is: { + onScreen: function() { + var + calculations = module.get.elementCalculations() + ; + return calculations.onScreen; + }, + offScreen: function() { + var + calculations = module.get.elementCalculations() + ; + return calculations.offScreen; + }, + visible: function() { + if(module.cache && module.cache.element) { + return !(module.cache.element.width === 0 && module.cache.element.offset.top === 0); + } + return false; + }, + verticallyScrollableContext: function() { + var + overflowY = ($context.get(0) !== window) + ? $context.css('overflow-y') + : false + ; + return (overflowY == 'auto' || overflowY == 'scroll'); + }, + horizontallyScrollableContext: function() { + var + overflowX = ($context.get(0) !== window) + ? $context.css('overflow-x') + : false + ; + return (overflowX == 'auto' || overflowX == 'scroll'); + } + }, + + refresh: function() { + module.debug('Refreshing constants (width/height)'); + if(settings.type == 'fixed') { + module.resetFixed(); + } + module.reset(); + module.save.position(); + if(settings.checkOnRefresh) { + module.checkVisibility(); + } + settings.onRefresh.call(element); + }, + + resetFixed: function () { + module.remove.fixed(); + module.remove.occurred(); + }, + + reset: function() { + module.verbose('Resetting all cached values'); + if( $.isPlainObject(module.cache) ) { + module.cache.screen = {}; + module.cache.element = {}; + } + }, + + checkVisibility: function(scroll) { + module.verbose('Checking visibility of element', module.cache.element); + + if( !disabled && module.is.visible() ) { + + // save scroll position + module.save.scroll(scroll); + + // update calculations derived from scroll + module.save.calculations(); + + // percentage + module.passed(); + + // reverse (must be first) + module.passingReverse(); + module.topVisibleReverse(); + module.bottomVisibleReverse(); + module.topPassedReverse(); + module.bottomPassedReverse(); + + // one time + module.onScreen(); + module.offScreen(); + module.passing(); + module.topVisible(); + module.bottomVisible(); + module.topPassed(); + module.bottomPassed(); + + // on update callback + if(settings.onUpdate) { + settings.onUpdate.call(element, module.get.elementCalculations()); + } + } + }, + + passed: function(amount, newCallback) { + var + calculations = module.get.elementCalculations(), + amountInPixels + ; + // assign callback + if(amount && newCallback) { + settings.onPassed[amount] = newCallback; + } + else if(amount !== undefined) { + return (module.get.pixelsPassed(amount) > calculations.pixelsPassed); + } + else if(calculations.passing) { + $.each(settings.onPassed, function(amount, callback) { + if(calculations.bottomVisible || calculations.pixelsPassed > module.get.pixelsPassed(amount)) { + module.execute(callback, amount); + } + else if(!settings.once) { + module.remove.occurred(callback); + } + }); + } + }, + + onScreen: function(newCallback) { + var + calculations = module.get.elementCalculations(), + callback = newCallback || settings.onOnScreen, + callbackName = 'onScreen' + ; + if(newCallback) { + module.debug('Adding callback for onScreen', newCallback); + settings.onOnScreen = newCallback; + } + if(calculations.onScreen) { + module.execute(callback, callbackName); + } + else if(!settings.once) { + module.remove.occurred(callbackName); + } + if(newCallback !== undefined) { + return calculations.onOnScreen; + } + }, + + offScreen: function(newCallback) { + var + calculations = module.get.elementCalculations(), + callback = newCallback || settings.onOffScreen, + callbackName = 'offScreen' + ; + if(newCallback) { + module.debug('Adding callback for offScreen', newCallback); + settings.onOffScreen = newCallback; + } + if(calculations.offScreen) { + module.execute(callback, callbackName); + } + else if(!settings.once) { + module.remove.occurred(callbackName); + } + if(newCallback !== undefined) { + return calculations.onOffScreen; + } + }, + + passing: function(newCallback) { + var + calculations = module.get.elementCalculations(), + callback = newCallback || settings.onPassing, + callbackName = 'passing' + ; + if(newCallback) { + module.debug('Adding callback for passing', newCallback); + settings.onPassing = newCallback; + } + if(calculations.passing) { + module.execute(callback, callbackName); + } + else if(!settings.once) { + module.remove.occurred(callbackName); + } + if(newCallback !== undefined) { + return calculations.passing; + } + }, + + + topVisible: function(newCallback) { + var + calculations = module.get.elementCalculations(), + callback = newCallback || settings.onTopVisible, + callbackName = 'topVisible' + ; + if(newCallback) { + module.debug('Adding callback for top visible', newCallback); + settings.onTopVisible = newCallback; + } + if(calculations.topVisible) { + module.execute(callback, callbackName); + } + else if(!settings.once) { + module.remove.occurred(callbackName); + } + if(newCallback === undefined) { + return calculations.topVisible; + } + }, + + bottomVisible: function(newCallback) { + var + calculations = module.get.elementCalculations(), + callback = newCallback || settings.onBottomVisible, + callbackName = 'bottomVisible' + ; + if(newCallback) { + module.debug('Adding callback for bottom visible', newCallback); + settings.onBottomVisible = newCallback; + } + if(calculations.bottomVisible) { + module.execute(callback, callbackName); + } + else if(!settings.once) { + module.remove.occurred(callbackName); + } + if(newCallback === undefined) { + return calculations.bottomVisible; + } + }, + + topPassed: function(newCallback) { + var + calculations = module.get.elementCalculations(), + callback = newCallback || settings.onTopPassed, + callbackName = 'topPassed' + ; + if(newCallback) { + module.debug('Adding callback for top passed', newCallback); + settings.onTopPassed = newCallback; + } + if(calculations.topPassed) { + module.execute(callback, callbackName); + } + else if(!settings.once) { + module.remove.occurred(callbackName); + } + if(newCallback === undefined) { + return calculations.topPassed; + } + }, + + bottomPassed: function(newCallback) { + var + calculations = module.get.elementCalculations(), + callback = newCallback || settings.onBottomPassed, + callbackName = 'bottomPassed' + ; + if(newCallback) { + module.debug('Adding callback for bottom passed', newCallback); + settings.onBottomPassed = newCallback; + } + if(calculations.bottomPassed) { + module.execute(callback, callbackName); + } + else if(!settings.once) { + module.remove.occurred(callbackName); + } + if(newCallback === undefined) { + return calculations.bottomPassed; + } + }, + + passingReverse: function(newCallback) { + var + calculations = module.get.elementCalculations(), + callback = newCallback || settings.onPassingReverse, + callbackName = 'passingReverse' + ; + if(newCallback) { + module.debug('Adding callback for passing reverse', newCallback); + settings.onPassingReverse = newCallback; + } + if(!calculations.passing) { + if(module.get.occurred('passing')) { + module.execute(callback, callbackName); + } + } + else if(!settings.once) { + module.remove.occurred(callbackName); + } + if(newCallback !== undefined) { + return !calculations.passing; + } + }, + + + topVisibleReverse: function(newCallback) { + var + calculations = module.get.elementCalculations(), + callback = newCallback || settings.onTopVisibleReverse, + callbackName = 'topVisibleReverse' + ; + if(newCallback) { + module.debug('Adding callback for top visible reverse', newCallback); + settings.onTopVisibleReverse = newCallback; + } + if(!calculations.topVisible) { + if(module.get.occurred('topVisible')) { + module.execute(callback, callbackName); + } + } + else if(!settings.once) { + module.remove.occurred(callbackName); + } + if(newCallback === undefined) { + return !calculations.topVisible; + } + }, + + bottomVisibleReverse: function(newCallback) { + var + calculations = module.get.elementCalculations(), + callback = newCallback || settings.onBottomVisibleReverse, + callbackName = 'bottomVisibleReverse' + ; + if(newCallback) { + module.debug('Adding callback for bottom visible reverse', newCallback); + settings.onBottomVisibleReverse = newCallback; + } + if(!calculations.bottomVisible) { + if(module.get.occurred('bottomVisible')) { + module.execute(callback, callbackName); + } + } + else if(!settings.once) { + module.remove.occurred(callbackName); + } + if(newCallback === undefined) { + return !calculations.bottomVisible; + } + }, + + topPassedReverse: function(newCallback) { + var + calculations = module.get.elementCalculations(), + callback = newCallback || settings.onTopPassedReverse, + callbackName = 'topPassedReverse' + ; + if(newCallback) { + module.debug('Adding callback for top passed reverse', newCallback); + settings.onTopPassedReverse = newCallback; + } + if(!calculations.topPassed) { + if(module.get.occurred('topPassed')) { + module.execute(callback, callbackName); + } + } + else if(!settings.once) { + module.remove.occurred(callbackName); + } + if(newCallback === undefined) { + return !calculations.onTopPassed; + } + }, + + bottomPassedReverse: function(newCallback) { + var + calculations = module.get.elementCalculations(), + callback = newCallback || settings.onBottomPassedReverse, + callbackName = 'bottomPassedReverse' + ; + if(newCallback) { + module.debug('Adding callback for bottom passed reverse', newCallback); + settings.onBottomPassedReverse = newCallback; + } + if(!calculations.bottomPassed) { + if(module.get.occurred('bottomPassed')) { + module.execute(callback, callbackName); + } + } + else if(!settings.once) { + module.remove.occurred(callbackName); + } + if(newCallback === undefined) { + return !calculations.bottomPassed; + } + }, + + execute: function(callback, callbackName) { + var + calculations = module.get.elementCalculations(), + screen = module.get.screenCalculations() + ; + callback = callback || false; + if(callback) { + if(settings.continuous) { + module.debug('Callback being called continuously', callbackName, calculations); + callback.call(element, calculations, screen); + } + else if(!module.get.occurred(callbackName)) { + module.debug('Conditions met', callbackName, calculations); + callback.call(element, calculations, screen); + } + } + module.save.occurred(callbackName); + }, + + remove: { + fixed: function() { + module.debug('Removing fixed position'); + $module + .removeClass(className.fixed) + .css({ + position : '', + top : '', + left : '', + zIndex : '' + }) + ; + settings.onUnfixed.call(element); + }, + placeholder: function() { + module.debug('Removing placeholder content'); + if($placeholder) { + $placeholder.remove(); + } + }, + occurred: function(callback) { + if(callback) { + var + occurred = module.cache.occurred + ; + if(occurred[callback] !== undefined && occurred[callback] === true) { + module.debug('Callback can now be called again', callback); + module.cache.occurred[callback] = false; + } + } + else { + module.cache.occurred = {}; + } + } + }, + + save: { + calculations: function() { + module.verbose('Saving all calculations necessary to determine positioning'); + module.save.direction(); + module.save.screenCalculations(); + module.save.elementCalculations(); + }, + occurred: function(callback) { + if(callback) { + if(module.cache.occurred[callback] === undefined || (module.cache.occurred[callback] !== true)) { + module.verbose('Saving callback occurred', callback); + module.cache.occurred[callback] = true; + } + } + }, + scroll: function(scrollPosition) { + scrollPosition = scrollPosition + settings.offset || $context.scrollTop() + settings.offset; + module.cache.scroll = scrollPosition; + }, + direction: function() { + var + scroll = module.get.scroll(), + lastScroll = module.get.lastScroll(), + direction + ; + if(scroll > lastScroll && lastScroll) { + direction = 'down'; + } + else if(scroll < lastScroll && lastScroll) { + direction = 'up'; + } + else { + direction = 'static'; + } + module.cache.direction = direction; + return module.cache.direction; + }, + elementPosition: function() { + var + element = module.cache.element, + screen = module.get.screenSize() + ; + module.verbose('Saving element position'); + // (quicker than $.extend) + element.fits = (element.height < screen.height); + element.offset = $module.offset(); + element.width = $module.outerWidth(); + element.height = $module.outerHeight(); + // compensate for scroll in context + if(module.is.verticallyScrollableContext()) { + element.offset.top += $context.scrollTop() - $context.offset().top; + } + if(module.is.horizontallyScrollableContext()) { + element.offset.left += $context.scrollLeft - $context.offset().left; + } + // store + module.cache.element = element; + return element; + }, + elementCalculations: function() { + var + screen = module.get.screenCalculations(), + element = module.get.elementPosition() + ; + // offset + if(settings.includeMargin) { + element.margin = {}; + element.margin.top = parseInt($module.css('margin-top'), 10); + element.margin.bottom = parseInt($module.css('margin-bottom'), 10); + element.top = element.offset.top - element.margin.top; + element.bottom = element.offset.top + element.height + element.margin.bottom; + } + else { + element.top = element.offset.top; + element.bottom = element.offset.top + element.height; + } + + // visibility + element.topPassed = (screen.top >= element.top); + element.bottomPassed = (screen.top >= element.bottom); + element.topVisible = (screen.bottom >= element.top) && !element.topPassed; + element.bottomVisible = (screen.bottom >= element.bottom) && !element.bottomPassed; + element.pixelsPassed = 0; + element.percentagePassed = 0; + + // meta calculations + element.onScreen = ((element.topVisible || element.passing) && !element.bottomPassed); + element.passing = (element.topPassed && !element.bottomPassed); + element.offScreen = (!element.onScreen); + + // passing calculations + if(element.passing) { + element.pixelsPassed = (screen.top - element.top); + element.percentagePassed = (screen.top - element.top) / element.height; + } + module.cache.element = element; + module.verbose('Updated element calculations', element); + return element; + }, + screenCalculations: function() { + var + scroll = module.get.scroll() + ; + module.save.direction(); + module.cache.screen.top = scroll; + module.cache.screen.bottom = scroll + module.cache.screen.height; + return module.cache.screen; + }, + screenSize: function() { + module.verbose('Saving window position'); + module.cache.screen = { + height: $context.height() + }; + }, + position: function() { + module.save.screenSize(); + module.save.elementPosition(); + } + }, + + get: { + pixelsPassed: function(amount) { + var + element = module.get.elementCalculations() + ; + if(amount.search('%') > -1) { + return ( element.height * (parseInt(amount, 10) / 100) ); + } + return parseInt(amount, 10); + }, + occurred: function(callback) { + return (module.cache.occurred !== undefined) + ? module.cache.occurred[callback] || false + : false + ; + }, + direction: function() { + if(module.cache.direction === undefined) { + module.save.direction(); + } + return module.cache.direction; + }, + elementPosition: function() { + if(module.cache.element === undefined) { + module.save.elementPosition(); + } + return module.cache.element; + }, + elementCalculations: function() { + if(module.cache.element === undefined) { + module.save.elementCalculations(); + } + return module.cache.element; + }, + screenCalculations: function() { + if(module.cache.screen === undefined) { + module.save.screenCalculations(); + } + return module.cache.screen; + }, + screenSize: function() { + if(module.cache.screen === undefined) { + module.save.screenSize(); + } + return module.cache.screen; + }, + scroll: function() { + if(module.cache.scroll === undefined) { + module.save.scroll(); + } + return module.cache.scroll; + }, + lastScroll: function() { + if(module.cache.screen === undefined) { + module.debug('First scroll event, no last scroll could be found'); + return false; + } + return module.cache.screen.top; + } + }, + + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(!settings.silent && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(!settings.silent && settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + if(!settings.silent) { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + } + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Element' : element, + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 500); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + object = instance, + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && object !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) { + object = object[camelCaseValue]; + } + else if( object[camelCaseValue] !== undefined ) { + found = object[camelCaseValue]; + return false; + } + else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) { + object = object[value]; + } + else if( object[value] !== undefined ) { + found = object[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + instance.save.scroll(); + instance.save.calculations(); + module.invoke(query); + } + else { + if(instance !== undefined) { + instance.invoke('destroy'); + } + module.initialize(); + } + }) + ; + + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.visibility.settings = { + + name : 'Visibility', + namespace : 'visibility', + + debug : false, + verbose : false, + performance : true, + + // whether to use mutation observers to follow changes + observeChanges : true, + + // check position immediately on init + initialCheck : true, + + // whether to refresh calculations after all page images load + refreshOnLoad : true, + + // whether to refresh calculations after page resize event + refreshOnResize : true, + + // should call callbacks on refresh event (resize, etc) + checkOnRefresh : true, + + // callback should only occur one time + once : true, + + // callback should fire continuously whe evaluates to true + continuous : false, + + // offset to use with scroll top + offset : 0, + + // whether to include margin in elements position + includeMargin : false, + + // scroll context for visibility checks + context : window, + + // visibility check delay in ms (defaults to animationFrame) + throttle : false, + + // special visibility type (image, fixed) + type : false, + + // z-index to use with visibility 'fixed' + zIndex : '10', + + // image only animation settings + transition : 'fade in', + duration : 1000, + + // array of callbacks for percentage + onPassed : {}, + + // standard callbacks + onOnScreen : false, + onOffScreen : false, + onPassing : false, + onTopVisible : false, + onBottomVisible : false, + onTopPassed : false, + onBottomPassed : false, + + // reverse callbacks + onPassingReverse : false, + onTopVisibleReverse : false, + onBottomVisibleReverse : false, + onTopPassedReverse : false, + onBottomPassedReverse : false, + + // special callbacks for image + onLoad : function() {}, + onAllLoaded : function() {}, + + // special callbacks for fixed position + onFixed : function() {}, + onUnfixed : function() {}, + + // utility callbacks + onUpdate : false, // disabled by default for performance + onRefresh : function(){}, + + metadata : { + src: 'src' + }, + + className: { + fixed : 'fixed', + placeholder : 'placeholder', + visible : 'visible' + }, + + error : { + method : 'The method you called is not defined.', + visible : 'Element is hidden, you must call refresh after element becomes visible' + } + +}; + +})( jQuery, window, document ); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/collections/breadcrumb.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/collections/breadcrumb.less new file mode 100644 index 00000000..67a4e312 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/collections/breadcrumb.less @@ -0,0 +1,122 @@ +/*! + * # Semantic UI - Breadcrumb + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Theme +*******************************/ + +@type : 'collection'; +@element : 'breadcrumb'; + +@import (multiple) '../../theme.config'; + + +/******************************* + Breadcrumb +*******************************/ + +.ui.breadcrumb { + line-height: 1; + display: @display; + margin: @verticalMargin 0em; + vertical-align: @verticalAlign; +} +.ui.breadcrumb:first-child { + margin-top: 0em; +} +.ui.breadcrumb:last-child { + margin-bottom: 0em; +} + +/******************************* + Content +*******************************/ + +/* Divider */ +.ui.breadcrumb .divider { + display: inline-block; + opacity: @dividerOpacity; + margin: 0em @dividerSpacing 0em; + + font-size: @dividerSize; + color: @dividerColor; + vertical-align: @dividerVerticalAlign; +} + +/* Link */ +.ui.breadcrumb a { + color: @linkColor; +} +.ui.breadcrumb a:hover { + color: @linkHoverColor; +} + + +/* Icon Divider */ +.ui.breadcrumb .icon.divider { + font-size: @iconDividerSize; + vertical-align: @iconDividerVerticalAlign; +} + +/* Section */ +.ui.breadcrumb a.section { + cursor: pointer; +} +.ui.breadcrumb .section { + display: inline-block; + margin: @sectionMargin; + padding: @sectionPadding; +} + +/* Loose Coupling */ +.ui.breadcrumb.segment { + display: inline-block; + padding: @segmentPadding; +} + +/******************************* + States +*******************************/ + +.ui.breadcrumb .active.section { + font-weight: @activeFontWeight; +} + + +/******************************* + Variations +*******************************/ + +.ui.mini.breadcrumb { + font-size: @mini; +} +.ui.tiny.breadcrumb { + font-size: @tiny; +} +.ui.small.breadcrumb { + font-size: @small; +} +.ui.breadcrumb { + font-size: @medium; +} +.ui.large.breadcrumb { + font-size: @large; +} +.ui.big.breadcrumb { + font-size: @big; +} +.ui.huge.breadcrumb { + font-size: @huge; +} +.ui.massive.breadcrumb { + font-size: @massive; +} + +.loadUIOverrides(); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/collections/form.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/collections/form.less new file mode 100644 index 00000000..73ef2a2d --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/collections/form.less @@ -0,0 +1,1053 @@ +/*! + * # Semantic UI - Form + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Theme +*******************************/ + +@type : 'collection'; +@element : 'form'; + +@import (multiple) '../../theme.config'; + +/******************************* + Elements +*******************************/ + +/*-------------------- + Form +---------------------*/ + +.ui.form { + position: relative; + max-width: 100%; +} + +/*-------------------- + Content +---------------------*/ + +.ui.form > p { + margin: @paragraphMargin; +} + +/*-------------------- + Field +---------------------*/ + +.ui.form .field { + clear: both; + margin: @fieldMargin; +} + +.ui.form .field:last-child, +.ui.form .fields:last-child .field { + margin-bottom: 0em; +} + +.ui.form .fields .field { + clear: both; + margin: 0em; +} + + +/*-------------------- + Labels +---------------------*/ + +.ui.form .field > label { + display: block; + margin: @labelMargin; + color: @labelColor; + font-size: @labelFontSize; + font-weight: @labelFontWeight; + text-transform: @labelTextTransform; +} + +/*-------------------- + Standard Inputs +---------------------*/ + + +.ui.form textarea, +.ui.form input:not([type]), +.ui.form input[type="date"], +.ui.form input[type="datetime-local"], +.ui.form input[type="email"], +.ui.form input[type="number"], +.ui.form input[type="password"], +.ui.form input[type="search"], +.ui.form input[type="tel"], +.ui.form input[type="time"], +.ui.form input[type="text"], +.ui.form input[type="file"], +.ui.form input[type="url"] { + width: @inputWidth; + vertical-align: top; +} + +/* Set max height on unusual input */ +.ui.form ::-webkit-datetime-edit, +.ui.form ::-webkit-inner-spin-button { + height: @inputLineHeight; +} + +.ui.form input:not([type]), +.ui.form input[type="date"], +.ui.form input[type="datetime-local"], +.ui.form input[type="email"], +.ui.form input[type="number"], +.ui.form input[type="password"], +.ui.form input[type="search"], +.ui.form input[type="tel"], +.ui.form input[type="time"], +.ui.form input[type="text"], +.ui.form input[type="file"], +.ui.form input[type="url"] { + font-family: @inputFont; + margin: 0em; + outline: none; + -webkit-appearance: none; + tap-highlight-color: rgba(255, 255, 255, 0); + + line-height: @inputLineHeight; + padding: @inputPadding; + font-size: @inputFontSize; + + background: @inputBackground; + border: @inputBorder; + color: @inputColor; + border-radius: @inputBorderRadius; + box-shadow: @inputBoxShadow; + transition: @inputTransition; +} + +/* Text Area */ +.ui.form textarea { + margin: 0em; + -webkit-appearance: none; + tap-highlight-color: rgba(255, 255, 255, 0); + + padding: @textAreaPadding; + font-size: @textAreaFontSize; + background: @textAreaBackground; + border: @textAreaBorder; + outline: none; + color: @inputColor; + border-radius: @inputBorderRadius; + box-shadow: @inputBoxShadow; + transition: @textAreaTransition; + font-size: @textAreaFontSize; + line-height: @textAreaLineHeight; + resize: @textAreaResize; +} +.ui.form textarea:not([rows]) { + height: @textAreaHeight; + min-height: @textAreaMinHeight; + max-height: @textAreaMaxHeight; +} + +.ui.form textarea, +.ui.form input[type="checkbox"] { + vertical-align: @checkboxVerticalAlign; +} + +/*-------------------------- + Input w/ attached Button +---------------------------*/ + +.ui.form input.attached { + width: auto; +} + + +/*-------------------- + Basic Select +---------------------*/ + +.ui.form select { + display: block; + height: auto; + width: 100%; + background: @selectBackground; + border: @selectBorder; + border-radius: @selectBorderRadius; + box-shadow: @selectBoxShadow; + padding: @selectPadding; + color: @selectColor; + transition: @selectTransition; +} + +/*-------------------- + Dropdown +---------------------*/ + +/* Block */ +.ui.form .field > .selection.dropdown { + width: 100%; +} +.ui.form .field > .selection.dropdown > .dropdown.icon { + float: right; +} + +/* Inline */ +.ui.form .inline.fields .field > .selection.dropdown, +.ui.form .inline.field > .selection.dropdown { + width: auto; +} +.ui.form .inline.fields .field > .selection.dropdown > .dropdown.icon, +.ui.form .inline.field > .selection.dropdown > .dropdown.icon { + float: none; +} + +/*-------------------- + UI Input +---------------------*/ + +/* Block */ +.ui.form .field .ui.input, +.ui.form .fields .field .ui.input, +.ui.form .wide.field .ui.input { + width: 100%; +} + +/* Inline */ +.ui.form .inline.fields .field:not(.wide) .ui.input, +.ui.form .inline.field:not(.wide) .ui.input { + width: auto; + vertical-align: middle; +} + +/* Auto Input */ +.ui.form .fields .field .ui.input input, +.ui.form .field .ui.input input { + width: auto; +} + +/* Full Width Input */ +.ui.form .ten.fields .ui.input input, +.ui.form .nine.fields .ui.input input, +.ui.form .eight.fields .ui.input input, +.ui.form .seven.fields .ui.input input, +.ui.form .six.fields .ui.input input, +.ui.form .five.fields .ui.input input, +.ui.form .four.fields .ui.input input, +.ui.form .three.fields .ui.input input, +.ui.form .two.fields .ui.input input, +.ui.form .wide.field .ui.input input { + flex: 1 0 auto; + width: 0px; +} + + +/*-------------------- + Types of Messages +---------------------*/ + +.ui.form .success.message, +.ui.form .warning.message, +.ui.form .error.message { + display: none; +} + +/* Assumptions */ +.ui.form .message:first-child { + margin-top: 0px; +} + +/*-------------------- + Validation Prompt +---------------------*/ + +.ui.form .field .prompt.label { + white-space: normal; + background: @promptBackground !important; + border: @promptBorder !important; + color: @promptTextColor !important; +} +.ui.form .inline.fields .field .prompt, +.ui.form .inline.field .prompt { + vertical-align: top; + margin: @inlinePromptMargin; +} +.ui.form .inline.fields .field .prompt:before, +.ui.form .inline.field .prompt:before { + border-width: 0px 0px @inlinePromptBorderWidth @inlinePromptBorderWidth; + bottom: auto; + right: auto; + top: 50%; + left: 0em; +} + + +/******************************* + States +*******************************/ + +/*-------------------- + Autofilled +---------------------*/ + +.ui.form .field.field input:-webkit-autofill { + box-shadow: 0px 0px 0px 100px @inputAutoFillBackground inset !important; + border-color: @inputAutoFillBorder !important; +} + +/* Focus */ +.ui.form .field.field input:-webkit-autofill:focus { + box-shadow: 0px 0px 0px 100px @inputAutoFillFocusBackground inset !important; + border-color: @inputAutoFillFocusBorder !important; +} + +/* Error */ +.ui.form .error.error input:-webkit-autofill { + box-shadow: 0px 0px 0px 100px @inputAutoFillErrorBackground inset !important; + border-color: @inputAutoFillErrorBorder !important; +} + + + +/*-------------------- + Placeholder +---------------------*/ + +/* browsers require these rules separate */ +.ui.form ::-webkit-input-placeholder { + color: @inputPlaceholderColor; +} +.ui.form :-ms-input-placeholder { + color: @inputPlaceholderColor !important; +} +.ui.form ::-moz-placeholder { + color: @inputPlaceholderColor; +} + +.ui.form :focus::-webkit-input-placeholder { + color: @inputPlaceholderFocusColor; +} +.ui.form :focus:-ms-input-placeholder { + color: @inputPlaceholderFocusColor !important; +} +.ui.form :focus::-moz-placeholder { + color: @inputPlaceholderFocusColor; +} + +/* Error Placeholder */ +.ui.form .error ::-webkit-input-placeholder { + color: @inputErrorPlaceholderColor; +} +.ui.form .error :-ms-input-placeholder { + color: @inputErrorPlaceholderColor !important; +} +.ui.form .error ::-moz-placeholder { + color: @inputErrorPlaceholderColor; +} + +.ui.form .error :focus::-webkit-input-placeholder { + color: @inputErrorPlaceholderFocusColor; +} +.ui.form .error :focus:-ms-input-placeholder { + color: @inputErrorPlaceholderFocusColor !important; +} +.ui.form .error :focus::-moz-placeholder { + color: @inputErrorPlaceholderFocusColor; +} + + +/*-------------------- + Focus +---------------------*/ + +.ui.form input:not([type]):focus, +.ui.form input[type="date"]:focus, +.ui.form input[type="datetime-local"]:focus, +.ui.form input[type="email"]:focus, +.ui.form input[type="number"]:focus, +.ui.form input[type="password"]:focus, +.ui.form input[type="search"]:focus, +.ui.form input[type="tel"]:focus, +.ui.form input[type="time"]:focus, +.ui.form input[type="text"]:focus, +.ui.form input[type="file"]:focus, +.ui.form input[type="url"]:focus { + color: @inputFocusColor; + border-color: @inputFocusBorderColor; + border-radius: @inputFocusBorderRadius; + background: @inputFocusBackground; + box-shadow: @inputFocusBoxShadow; +} +.ui.form textarea:focus { + color: @textAreaFocusColor; + border-color: @textAreaFocusBorderColor; + border-radius: @textAreaFocusBorderRadius; + background: @textAreaFocusBackground; + box-shadow: @textAreaFocusBoxShadow; + -webkit-appearance: none; +} + + +/*-------------------- + Success +---------------------*/ + +/* On Form */ +.ui.form.success .success.message:not(:empty) { + display: block; +} +.ui.form.success .compact.success.message:not(:empty) { + display: inline-block; +} +.ui.form.success .icon.success.message:not(:empty) { + display: flex; +} + +/*-------------------- + Warning +---------------------*/ + +/* On Form */ +.ui.form.warning .warning.message:not(:empty) { + display: block; +} +.ui.form.warning .compact.warning.message:not(:empty) { + display: inline-block; +} +.ui.form.warning .icon.warning.message:not(:empty) { + display: flex; +} + +/*-------------------- + Error +---------------------*/ + +/* On Form */ +.ui.form.error .error.message:not(:empty) { + display: block; +} +.ui.form.error .compact.error.message:not(:empty) { + display: inline-block; +} +.ui.form.error .icon.error.message:not(:empty) { + display: flex; +} + +/* On Field(s) */ +.ui.form .fields.error .field label, +.ui.form .field.error label, +.ui.form .fields.error .field .input, +.ui.form .field.error .input { + color: @formErrorColor; +} + +.ui.form .fields.error .field .corner.label, +.ui.form .field.error .corner.label { + border-color: @formErrorColor; + color: @white; +} + +.ui.form .fields.error .field textarea, +.ui.form .fields.error .field select, +.ui.form .fields.error .field input:not([type]), +.ui.form .fields.error .field input[type="date"], +.ui.form .fields.error .field input[type="datetime-local"], +.ui.form .fields.error .field input[type="email"], +.ui.form .fields.error .field input[type="number"], +.ui.form .fields.error .field input[type="password"], +.ui.form .fields.error .field input[type="search"], +.ui.form .fields.error .field input[type="tel"], +.ui.form .fields.error .field input[type="time"], +.ui.form .fields.error .field input[type="text"], +.ui.form .fields.error .field input[type="file"], +.ui.form .fields.error .field input[type="url"], +.ui.form .field.error textarea, +.ui.form .field.error select, +.ui.form .field.error input:not([type]), +.ui.form .field.error input[type="date"], +.ui.form .field.error input[type="datetime-local"], +.ui.form .field.error input[type="email"], +.ui.form .field.error input[type="number"], +.ui.form .field.error input[type="password"], +.ui.form .field.error input[type="search"], +.ui.form .field.error input[type="tel"], +.ui.form .field.error input[type="time"], +.ui.form .field.error input[type="text"], +.ui.form .field.error input[type="file"], +.ui.form .field.error input[type="url"] { + background: @formErrorBackground; + border-color: @formErrorBorder; + color: @formErrorColor; + border-radius: @inputErrorBorderRadius; + box-shadow: @inputErrorBoxShadow; +} +.ui.form .field.error textarea:focus, +.ui.form .field.error select:focus, +.ui.form .field.error input:not([type]):focus, +.ui.form .field.error input[type="date"]:focus, +.ui.form .field.error input[type="datetime-local"]:focus, +.ui.form .field.error input[type="email"]:focus, +.ui.form .field.error input[type="number"]:focus, +.ui.form .field.error input[type="password"]:focus, +.ui.form .field.error input[type="search"]:focus, +.ui.form .field.error input[type="tel"]:focus, +.ui.form .field.error input[type="time"]:focus, +.ui.form .field.error input[type="text"]:focus, +.ui.form .field.error input[type="file"]:focus, +.ui.form .field.error input[type="url"]:focus { + background: @inputErrorFocusBackground; + border-color: @inputErrorFocusBorder; + color: @inputErrorFocusColor; + + -webkit-appearance: none; + box-shadow: @inputErrorFocusBoxShadow; +} + +/* Preserve Native Select Stylings */ +.ui.form .field.error select { + -webkit-appearance: menulist-button; +} + +/*------------------ + Dropdown Error +--------------------*/ + +.ui.form .fields.error .field .ui.dropdown, +.ui.form .fields.error .field .ui.dropdown .item, +.ui.form .field.error .ui.dropdown, +.ui.form .field.error .ui.dropdown .text, +.ui.form .field.error .ui.dropdown .item { + background: @formErrorBackground; + color: @formErrorColor; +} +.ui.form .fields.error .field .ui.dropdown, +.ui.form .field.error .ui.dropdown { + border-color: @formErrorBorder !important; +} +.ui.form .fields.error .field .ui.dropdown:hover, +.ui.form .field.error .ui.dropdown:hover { + border-color: @formErrorBorder !important; +} +.ui.form .fields.error .field .ui.dropdown:hover .menu, +.ui.form .field.error .ui.dropdown:hover .menu { + border-color: @formErrorBorder; +} +.ui.form .fields.error .field .ui.multiple.selection.dropdown > .label, +.ui.form .field.error .ui.multiple.selection.dropdown > .label { + background-color: @dropdownErrorLabelBackground; + color: @dropdownErrorLabelColor; +} + +/* Hover */ +.ui.form .fields.error .field .ui.dropdown .menu .item:hover, +.ui.form .field.error .ui.dropdown .menu .item:hover { + background-color: @dropdownErrorHoverBackground; +} + +/* Selected */ +.ui.form .fields.error .field .ui.dropdown .menu .selected.item, +.ui.form .field.error .ui.dropdown .menu .selected.item { + background-color: @dropdownErrorSelectedBackground; +} + + +/* Active */ +.ui.form .fields.error .field .ui.dropdown .menu .active.item, +.ui.form .field.error .ui.dropdown .menu .active.item { + background-color: @dropdownErrorActiveBackground !important; +} + +/*-------------------- + Checkbox Error +---------------------*/ + +.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) label, +.ui.form .field.error .checkbox:not(.toggle):not(.slider) label, +.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) .box, +.ui.form .field.error .checkbox:not(.toggle):not(.slider) .box { + color: @formErrorColor; +} +.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) label:before, +.ui.form .field.error .checkbox:not(.toggle):not(.slider) label:before, +.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) .box:before, +.ui.form .field.error .checkbox:not(.toggle):not(.slider) .box:before { + background: @formErrorBackground; + border-color: @formErrorBorder; +} +.ui.form .fields.error .field .checkbox label:after, +.ui.form .field.error .checkbox label:after, +.ui.form .fields.error .field .checkbox .box:after, +.ui.form .field.error .checkbox .box:after { + color: @formErrorColor; +} + +/*-------------------- + Disabled +---------------------*/ + +.ui.form .disabled.fields .field, +.ui.form .disabled.field, +.ui.form .field :disabled { + pointer-events: none; + opacity: @disabledOpacity; +} +.ui.form .field.disabled > label, +.ui.form .fields.disabled > label { + opacity: @disabledLabelOpacity; +} +.ui.form .field.disabled :disabled { + opacity: 1; +} + + +/*-------------- + Loading +---------------*/ + +.ui.loading.form { + position: relative; + cursor: default; + pointer-events: none; +} +.ui.loading.form:before { + position: absolute; + content: ''; + top: 0%; + left: 0%; + background: @loaderDimmerColor; + width: 100%; + height: 100%; + z-index: @loaderDimmerZIndex; +} +.ui.loading.form:after { + position: absolute; + content: ''; + top: 50%; + left: 50%; + + margin: @loaderMargin; + width: @loaderSize; + height: @loaderSize; + + animation: form-spin @loaderSpeed linear; + animation-iteration-count: infinite; + + border-radius: @circularRadius; + + border-color: @loaderLineColor @loaderFillColor @loaderFillColor @loaderFillColor; + border-style: solid; + border-width: @loaderLineWidth; + + box-shadow: 0px 0px 0px 1px transparent; + visibility: visible; + z-index: @loaderLineZIndex; +} + +@keyframes form-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + + +/******************************* + Element Types +*******************************/ + +/*-------------------- + Required Field +---------------------*/ + +.ui.form .required.fields:not(.grouped) > .field > label:after, +.ui.form .required.fields.grouped > label:after, +.ui.form .required.field > label:after, +.ui.form .required.fields:not(.grouped) > .field > .checkbox:after, +.ui.form .required.field > .checkbox:after { + margin: @requiredMargin; + content: @requiredContent; + color: @requiredColor; +} + +.ui.form .required.fields:not(.grouped) > .field > label:after, +.ui.form .required.fields.grouped > label:after, +.ui.form .required.field > label:after { + display: inline-block; + vertical-align: top; +} + +.ui.form .required.fields:not(.grouped) > .field > .checkbox:after, +.ui.form .required.field > .checkbox:after { + position: absolute; + top: 0%; + left: 100%; +} + + +/******************************* + Variations +*******************************/ + + +/*-------------------- + Inverted Colors +---------------------*/ + +.ui.inverted.form label, +.ui.form .inverted.segment label, +.ui.form .inverted.segment .ui.checkbox label, +.ui.form .inverted.segment .ui.checkbox .box, +.ui.inverted.form .ui.checkbox label, +.ui.inverted.form .ui.checkbox .box, +.ui.inverted.form .inline.fields > label, +.ui.inverted.form .inline.fields .field > label, +.ui.inverted.form .inline.fields .field > p, +.ui.inverted.form .inline.field > label, +.ui.inverted.form .inline.field > p { + color: @invertedLabelColor; +} + +/* Inverted Field */ +.ui.inverted.form input:not([type]), +.ui.inverted.form input[type="date"], +.ui.inverted.form input[type="datetime-local"], +.ui.inverted.form input[type="email"], +.ui.inverted.form input[type="number"], +.ui.inverted.form input[type="password"], +.ui.inverted.form input[type="search"], +.ui.inverted.form input[type="tel"], +.ui.inverted.form input[type="time"], +.ui.inverted.form input[type="text"], +.ui.inverted.form input[type="file"], +.ui.inverted.form input[type="url"] { + background: @invertedInputBackground; + border-color: @invertedInputBorderColor; + color: @invertedInputColor; + box-shadow: @invertedInputBoxShadow; +} + + +/*-------------------- + Field Groups +---------------------*/ + +/* Grouped Vertically */ +.ui.form .grouped.fields { + display: block; + margin: @groupedMargin; +} +.ui.form .grouped.fields:last-child { + margin-bottom: 0em; +} + +.ui.form .grouped.fields > label { + margin: @groupedLabelMargin; + color: @groupedLabelColor; + font-size: @groupedLabelFontSize; + font-weight: @groupedLabelFontWeight; + text-transform: @groupedLabelTextTransform; +} + +.ui.form .grouped.fields .field, +.ui.form .grouped.inline.fields .field { + display: block; + margin: @groupedFieldMargin; + padding: 0em; +} + +/*-------------------- + Fields +---------------------*/ + +/* Split fields */ +.ui.form .fields { + display: flex; + flex-direction: row; + margin: @fieldsMargin; +} +.ui.form .fields > .field { + flex: 0 1 auto; + padding-left: (@gutterWidth / 2); + padding-right: (@gutterWidth / 2); +} +.ui.form .fields > .field:first-child { + border-left: none; + box-shadow: none; +} + +/* Other Combinations */ +.ui.form .two.fields > .fields, +.ui.form .two.fields > .field { + width: @twoColumn; +} +.ui.form .three.fields > .fields, +.ui.form .three.fields > .field { + width: @threeColumn; +} +.ui.form .four.fields > .fields, +.ui.form .four.fields > .field { + width: @fourColumn; +} +.ui.form .five.fields > .fields, +.ui.form .five.fields > .field { + width: @fiveColumn; +} +.ui.form .six.fields > .fields, +.ui.form .six.fields > .field { + width: @sixColumn; +} +.ui.form .seven.fields > .fields, +.ui.form .seven.fields > .field { + width: @sevenColumn; +} +.ui.form .eight.fields > .fields, +.ui.form .eight.fields > .field { + width: @eightColumn; +} +.ui.form .nine.fields > .fields, +.ui.form .nine.fields > .field { + width: @nineColumn; +} +.ui.form .ten.fields > .fields, +.ui.form .ten.fields > .field { + width: @tenColumn; +} + +/* Swap to full width on mobile */ +@media only screen and (max-width : @largestMobileScreen) { + .ui.form .fields { + flex-wrap: wrap; + } + + .ui[class*="equal width"].form:not(.unstackable) .fields > .field, + .ui.form:not(.unstackable) [class*="equal width"].fields:not(.unstackable) > .field, + .ui.form:not(.unstackable) .two.fields:not(.unstackable) > .fields, + .ui.form:not(.unstackable) .two.fields:not(.unstackable) > .field, + .ui.form:not(.unstackable) .three.fields:not(.unstackable) > .fields, + .ui.form:not(.unstackable) .three.fields:not(.unstackable) > .field, + .ui.form:not(.unstackable) .four.fields:not(.unstackable) > .fields, + .ui.form:not(.unstackable) .four.fields:not(.unstackable) > .field, + .ui.form:not(.unstackable) .five.fields:not(.unstackable) > .fields, + .ui.form:not(.unstackable) .five.fields:not(.unstackable) > .field, + .ui.form:not(.unstackable) .six.fields:not(.unstackable) > .fields, + .ui.form:not(.unstackable) .six.fields:not(.unstackable) > .field, + .ui.form:not(.unstackable) .seven.fields:not(.unstackable) > .fields, + .ui.form:not(.unstackable) .seven.fields:not(.unstackable) > .field, + .ui.form:not(.unstackable) .eight.fields:not(.unstackable) > .fields, + .ui.form:not(.unstackable) .eight.fields:not(.unstackable) > .field, + .ui.form:not(.unstackable) .nine.fields:not(.unstackable) > .fields, + .ui.form:not(.unstackable) .nine.fields:not(.unstackable) > .field, + .ui.form:not(.unstackable) .ten.fields:not(.unstackable) > .fields, + .ui.form:not(.unstackable) .ten.fields:not(.unstackable) > .field { + width: @oneColumn !important; + margin: 0em 0em @rowDistance; + } +} + + +/* Sizing Combinations */ +.ui.form .fields .wide.field { + width: @oneWide; + padding-left: (@gutterWidth / 2); + padding-right: (@gutterWidth / 2); +} + +.ui.form .one.wide.field { + width: @oneWide !important; +} +.ui.form .two.wide.field { + width: @twoWide !important; +} +.ui.form .three.wide.field { + width: @threeWide !important; +} +.ui.form .four.wide.field { + width: @fourWide !important; +} +.ui.form .five.wide.field { + width: @fiveWide !important; +} +.ui.form .six.wide.field { + width: @sixWide !important; +} +.ui.form .seven.wide.field { + width: @sevenWide !important; +} +.ui.form .eight.wide.field { + width: @eightWide !important; +} +.ui.form .nine.wide.field { + width: @nineWide !important; +} +.ui.form .ten.wide.field { + width: @tenWide !important; +} +.ui.form .eleven.wide.field { + width: @elevenWide !important; +} +.ui.form .twelve.wide.field { + width: @twelveWide !important; +} +.ui.form .thirteen.wide.field { + width: @thirteenWide !important; +} +.ui.form .fourteen.wide.field { + width: @fourteenWide !important; +} +.ui.form .fifteen.wide.field { + width: @fifteenWide !important; +} +.ui.form .sixteen.wide.field { + width: @sixteenWide !important; +} + +/* Swap to full width on mobile */ +@media only screen and (max-width : @largestMobileScreen) { + .ui.form:not(.unstackable) .two.fields:not(.unstackable) > .fields, + .ui.form:not(.unstackable) .two.fields:not(.unstackable) > .field, + .ui.form:not(.unstackable) .three.fields:not(.unstackable) > .fields, + .ui.form:not(.unstackable) .three.fields:not(.unstackable) > .field, + .ui.form:not(.unstackable) .four.fields:not(.unstackable) > .fields, + .ui.form:not(.unstackable) .four.fields:not(.unstackable) > .field, + .ui.form:not(.unstackable) .five.fields:not(.unstackable) > .fields, + .ui.form:not(.unstackable) .five.fields:not(.unstackable) > .field, + .ui.form:not(.unstackable) .fields:not(.unstackable) > .two.wide.field, + .ui.form:not(.unstackable) .fields:not(.unstackable) > .three.wide.field, + .ui.form:not(.unstackable) .fields:not(.unstackable) > .four.wide.field, + .ui.form:not(.unstackable) .fields:not(.unstackable) > .five.wide.field, + .ui.form:not(.unstackable) .fields:not(.unstackable) > .six.wide.field, + .ui.form:not(.unstackable) .fields:not(.unstackable) > .seven.wide.field, + .ui.form:not(.unstackable) .fields:not(.unstackable) > .eight.wide.field, + .ui.form:not(.unstackable) .fields:not(.unstackable) > .nine.wide.field, + .ui.form:not(.unstackable) .fields:not(.unstackable) > .ten.wide.field, + .ui.form:not(.unstackable) .fields:not(.unstackable) > .eleven.wide.field, + .ui.form:not(.unstackable) .fields:not(.unstackable) > .twelve.wide.field, + .ui.form:not(.unstackable) .fields:not(.unstackable) > .thirteen.wide.field, + .ui.form:not(.unstackable) .fields:not(.unstackable) > .fourteen.wide.field, + .ui.form:not(.unstackable) .fields:not(.unstackable) > .fifteen.wide.field, + .ui.form:not(.unstackable) .fields:not(.unstackable) > .sixteen.wide.field { + width: @oneColumn !important; + } + .ui.form .fields { + margin-bottom: 0em; + } +} + +/*-------------------- + Equal Width +---------------------*/ + +.ui[class*="equal width"].form .fields > .field, +.ui.form [class*="equal width"].fields > .field { + width: 100%; + flex: 1 1 auto; +} + +/*-------------------- + Inline Fields +---------------------*/ + +.ui.form .inline.fields { + margin: @fieldMargin; + align-items: center; +} +.ui.form .inline.fields .field { + margin: 0em; + padding: @inlineFieldsMargin; +} + +/* Inline Label */ +.ui.form .inline.fields > label, +.ui.form .inline.fields .field > label, +.ui.form .inline.fields .field > p, +.ui.form .inline.field > label, +.ui.form .inline.field > p { + display: inline-block; + width: auto; + margin-top: 0em; + margin-bottom: 0em; + vertical-align: baseline; + font-size: @inlineLabelFontSize; + font-weight: @inlineLabelFontWeight; + color: @inlineLabelColor; + text-transform: @inlineLabelTextTransform; +} + +/* Grouped Inline Label */ +.ui.form .inline.fields > label { + margin: @groupedInlineLabelMargin; +} + +/* Inline Input */ +.ui.form .inline.fields .field > input, +.ui.form .inline.fields .field > select, +.ui.form .inline.field > input, +.ui.form .inline.field > select { + display: inline-block; + width: auto; + + margin-top: 0em; + margin-bottom: 0em; + + vertical-align: middle; + font-size: @inlineInputSize; +} + +/* Label */ +.ui.form .inline.fields .field > :first-child, +.ui.form .inline.field > :first-child { + margin: 0em @inlineLabelDistance 0em 0em; +} +.ui.form .inline.fields .field > :only-child, +.ui.form .inline.field > :only-child { + margin: 0em; +} + +/* Wide */ +.ui.form .inline.fields .wide.field { + display: flex; + align-items: center; +} +.ui.form .inline.fields .wide.field > input, +.ui.form .inline.fields .wide.field > select { + width: 100%; +} + + +/*-------------------- + Sizes +---------------------*/ + +.ui.mini.form { + font-size: @mini; +} +.ui.tiny.form { + font-size: @tiny; +} +.ui.small.form { + font-size: @small; +} +.ui.form { + font-size: @medium; +} +.ui.large.form { + font-size: @large; +} +.ui.big.form { + font-size: @big; +} +.ui.huge.form { + font-size: @huge; +} +.ui.massive.form { + font-size: @massive; +} + +.loadUIOverrides(); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/collections/grid.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/collections/grid.less new file mode 100644 index 00000000..05c0a2b4 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/collections/grid.less @@ -0,0 +1,1920 @@ +/*! + * # Semantic UI - Grid + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Theme +*******************************/ + +@type : 'collection'; +@element : 'grid'; + +@import (multiple) '../../theme.config'; + +/******************************* + Standard +*******************************/ + +.ui.grid { + display: flex; + flex-direction: row; + flex-wrap: wrap; + align-items: stretch; + padding: 0em; +} + +/*---------------------- + Remove Gutters +-----------------------*/ + +.ui.grid { + margin-top: -(@rowSpacing / 2); + margin-bottom: -(@rowSpacing / 2); + margin-left: -(@gutterWidth / 2); + margin-right: -(@gutterWidth / 2); +} +.ui.relaxed.grid { + margin-left: -(@relaxedGutterWidth / 2); + margin-right: -(@relaxedGutterWidth / 2); +} +.ui[class*="very relaxed"].grid { + margin-left: -(@veryRelaxedGutterWidth / 2); + margin-right: -(@veryRelaxedGutterWidth / 2); +} + + +/* Preserve Rows Spacing on Consecutive Grids */ +.ui.grid + .grid { + margin-top: @consecutiveGridDistance; +} + +/*------------------- + Columns +--------------------*/ + +/* Standard 16 column */ +.ui.grid > .column:not(.row), +.ui.grid > .row > .column { + position: relative; + display: inline-block; + + width: @oneWide; + padding-left: (@gutterWidth / 2); + padding-right: (@gutterWidth / 2); + vertical-align: top; +} + +.ui.grid > * { + padding-left: (@gutterWidth / 2); + padding-right: (@gutterWidth / 2); +} + +/*------------------- + Rows +--------------------*/ + +.ui.grid > .row { + position: relative; + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: inherit; + align-items: stretch; + width: 100% !important; + padding: 0rem; + padding-top: (@rowSpacing / 2); + padding-bottom: (@rowSpacing / 2); +} + +/*------------------- + Columns +--------------------*/ + +/* Vertical padding when no rows */ +.ui.grid > .column:not(.row) { + padding-top: (@rowSpacing / 2); + padding-bottom: (@rowSpacing / 2); +} +.ui.grid > .row > .column { + margin-top: 0em; + margin-bottom: 0em; +} + +/*------------------- + Content +--------------------*/ + +.ui.grid > .row > img, +.ui.grid > .row > .column > img { + max-width: @columnMaxImageWidth; +} + +/*------------------- + Loose Coupling +--------------------*/ + +/* Collapse Margin on Consecutive Grid */ +.ui.grid > .ui.grid:first-child { + margin-top: 0em; +} +.ui.grid > .ui.grid:last-child { + margin-bottom: 0em; +} + +/* Segment inside Aligned Grid */ +.ui.grid .aligned.row > .column > .segment:not(.compact):not(.attached), +.ui.aligned.grid .column > .segment:not(.compact):not(.attached) { + width: 100%; +} + +/* Align Dividers with Gutter */ +.ui.grid .row + .ui.divider { + flex-grow: 1; + margin: (@rowSpacing / 2) (@gutterWidth / 2); +} +.ui.grid .column + .ui.vertical.divider { + height: calc(50% - (@rowSpacing / 2)); +} + +/* Remove Border on Last Horizontal Segment */ +.ui.grid > .row > .column:last-child > .horizontal.segment, +.ui.grid > .column:last-child > .horizontal.segment { + box-shadow: none; +} + +/******************************* + Variations +*******************************/ + + +/*----------------------- + Page Grid +-------------------------*/ + +@media only screen and (max-width: @largestMobileScreen) { + .ui.page.grid { + width: @mobileWidth; + padding-left: @mobileGutter; + padding-right: @mobileGutter; + margin-left: 0em; + margin-right: 0em; + } +} +@media only screen and (min-width: @tabletBreakpoint) and (max-width: @largestTabletScreen) { + .ui.page.grid { + width: @tabletWidth; + margin-left: @tabletMargin; + margin-right: @tabletMargin; + padding-left: @tabletGutter; + padding-right: @tabletGutter; + } +} +@media only screen and (min-width: @computerBreakpoint) and (max-width: @largestSmallMonitor) { + .ui.page.grid { + width: @computerWidth; + margin-left: @computerMargin; + margin-right: @computerMargin; + padding-left: @computerGutter; + padding-right: @computerGutter; + } +} +@media only screen and (min-width: @largeMonitorBreakpoint) and (max-width: @largestLargeMonitor) { + .ui.page.grid { + width: @largeMonitorWidth; + margin-left: @largeMonitorMargin; + margin-right: @largeMonitorMargin; + padding-left: @largeMonitorGutter; + padding-right: @largeMonitorGutter; + } +} +@media only screen and (min-width: @widescreenMonitorBreakpoint) { + .ui.page.grid { + width: @widescreenMonitorWidth; + margin-left: @widescreenMargin; + margin-right: @widescreenMargin; + padding-left: @widescreenMonitorGutter; + padding-right: @widescreenMonitorGutter; + } +} + + +/*------------------- + Column Count +--------------------*/ + +/* Assume full width with one column */ +.ui.grid > .column:only-child, +.ui.grid > .row > .column:only-child { + width: @oneColumn; +} + +/* Grid Based */ +.ui[class*="one column"].grid > .row > .column, +.ui[class*="one column"].grid > .column:not(.row) { + width: @oneColumn; +} +.ui[class*="two column"].grid > .row > .column, +.ui[class*="two column"].grid > .column:not(.row) { + width: @twoColumn; +} +.ui[class*="three column"].grid > .row > .column, +.ui[class*="three column"].grid > .column:not(.row) { + width: @threeColumn; +} +.ui[class*="four column"].grid > .row > .column, +.ui[class*="four column"].grid > .column:not(.row) { + width: @fourColumn; +} +.ui[class*="five column"].grid > .row > .column, +.ui[class*="five column"].grid > .column:not(.row) { + width: @fiveColumn; +} +.ui[class*="six column"].grid > .row > .column, +.ui[class*="six column"].grid > .column:not(.row) { + width: @sixColumn; +} +.ui[class*="seven column"].grid > .row > .column, +.ui[class*="seven column"].grid > .column:not(.row) { + width: @sevenColumn; +} +.ui[class*="eight column"].grid > .row > .column, +.ui[class*="eight column"].grid > .column:not(.row) { + width: @eightColumn; +} +.ui[class*="nine column"].grid > .row > .column, +.ui[class*="nine column"].grid > .column:not(.row) { + width: @nineColumn; +} +.ui[class*="ten column"].grid > .row > .column, +.ui[class*="ten column"].grid > .column:not(.row) { + width: @tenColumn; +} +.ui[class*="eleven column"].grid > .row > .column, +.ui[class*="eleven column"].grid > .column:not(.row) { + width: @elevenColumn; +} +.ui[class*="twelve column"].grid > .row > .column, +.ui[class*="twelve column"].grid > .column:not(.row) { + width: @twelveColumn; +} +.ui[class*="thirteen column"].grid > .row > .column, +.ui[class*="thirteen column"].grid > .column:not(.row) { + width: @thirteenColumn; +} +.ui[class*="fourteen column"].grid > .row > .column, +.ui[class*="fourteen column"].grid > .column:not(.row) { + width: @fourteenColumn; +} +.ui[class*="fifteen column"].grid > .row > .column, +.ui[class*="fifteen column"].grid > .column:not(.row) { + width: @fifteenColumn; +} +.ui[class*="sixteen column"].grid > .row > .column, +.ui[class*="sixteen column"].grid > .column:not(.row) { + width: @sixteenColumn; +} + +/* Row Based Overrides */ +.ui.grid > [class*="one column"].row > .column { + width: @oneColumn !important; +} +.ui.grid > [class*="two column"].row > .column { + width: @twoColumn !important; +} +.ui.grid > [class*="three column"].row > .column { + width: @threeColumn !important; +} +.ui.grid > [class*="four column"].row > .column { + width: @fourColumn !important; +} +.ui.grid > [class*="five column"].row > .column { + width: @fiveColumn !important; +} +.ui.grid > [class*="six column"].row > .column { + width: @sixColumn !important; +} +.ui.grid > [class*="seven column"].row > .column { + width: @sevenColumn !important; +} +.ui.grid > [class*="eight column"].row > .column { + width: @eightColumn !important; +} +.ui.grid > [class*="nine column"].row > .column { + width: @nineColumn !important; +} +.ui.grid > [class*="ten column"].row > .column { + width: @tenColumn !important; +} +.ui.grid > [class*="eleven column"].row > .column { + width: @elevenColumn !important; +} +.ui.grid > [class*="twelve column"].row > .column { + width: @twelveColumn !important; +} +.ui.grid > [class*="thirteen column"].row > .column { + width: @thirteenColumn !important; +} +.ui.grid > [class*="fourteen column"].row > .column { + width: @fourteenColumn !important; +} +.ui.grid > [class*="fifteen column"].row > .column { + width: @fifteenColumn !important; +} +.ui.grid > [class*="sixteen column"].row > .column { + width: @sixteenColumn !important; +} + +/* Celled Page */ +.ui.celled.page.grid { + box-shadow: none; +} + +/*------------------- + Column Width +--------------------*/ + +/* Sizing Combinations */ +.ui.grid > .row > [class*="one wide"].column, +.ui.grid > .column.row > [class*="one wide"].column, +.ui.grid > [class*="one wide"].column, +.ui.column.grid > [class*="one wide"].column { + width: @oneWide !important; +} +.ui.grid > .row > [class*="two wide"].column, +.ui.grid > .column.row > [class*="two wide"].column, +.ui.grid > [class*="two wide"].column, +.ui.column.grid > [class*="two wide"].column { + width: @twoWide !important; +} +.ui.grid > .row > [class*="three wide"].column, +.ui.grid > .column.row > [class*="three wide"].column, +.ui.grid > [class*="three wide"].column, +.ui.column.grid > [class*="three wide"].column { + width: @threeWide !important; +} +.ui.grid > .row > [class*="four wide"].column, +.ui.grid > .column.row > [class*="four wide"].column, +.ui.grid > [class*="four wide"].column, +.ui.column.grid > [class*="four wide"].column { + width: @fourWide !important; +} +.ui.grid > .row > [class*="five wide"].column, +.ui.grid > .column.row > [class*="five wide"].column, +.ui.grid > [class*="five wide"].column, +.ui.column.grid > [class*="five wide"].column { + width: @fiveWide !important; +} +.ui.grid > .row > [class*="six wide"].column, +.ui.grid > .column.row > [class*="six wide"].column, +.ui.grid > [class*="six wide"].column, +.ui.column.grid > [class*="six wide"].column { + width: @sixWide !important; +} +.ui.grid > .row > [class*="seven wide"].column, +.ui.grid > .column.row > [class*="seven wide"].column, +.ui.grid > [class*="seven wide"].column, +.ui.column.grid > [class*="seven wide"].column { + width: @sevenWide !important; +} +.ui.grid > .row > [class*="eight wide"].column, +.ui.grid > .column.row > [class*="eight wide"].column, +.ui.grid > [class*="eight wide"].column, +.ui.column.grid > [class*="eight wide"].column { + width: @eightWide !important; +} +.ui.grid > .row > [class*="nine wide"].column, +.ui.grid > .column.row > [class*="nine wide"].column, +.ui.grid > [class*="nine wide"].column, +.ui.column.grid > [class*="nine wide"].column { + width: @nineWide !important; +} +.ui.grid > .row > [class*="ten wide"].column, +.ui.grid > .column.row > [class*="ten wide"].column, +.ui.grid > [class*="ten wide"].column, +.ui.column.grid > [class*="ten wide"].column { + width: @tenWide !important; +} +.ui.grid > .row > [class*="eleven wide"].column, +.ui.grid > .column.row > [class*="eleven wide"].column, +.ui.grid > [class*="eleven wide"].column, +.ui.column.grid > [class*="eleven wide"].column { + width: @elevenWide !important; +} +.ui.grid > .row > [class*="twelve wide"].column, +.ui.grid > .column.row > [class*="twelve wide"].column, +.ui.grid > [class*="twelve wide"].column, +.ui.column.grid > [class*="twelve wide"].column { + width: @twelveWide !important; +} +.ui.grid > .row > [class*="thirteen wide"].column, +.ui.grid > .column.row > [class*="thirteen wide"].column, +.ui.grid > [class*="thirteen wide"].column, +.ui.column.grid > [class*="thirteen wide"].column { + width: @thirteenWide !important; +} +.ui.grid > .row > [class*="fourteen wide"].column, +.ui.grid > .column.row > [class*="fourteen wide"].column, +.ui.grid > [class*="fourteen wide"].column, +.ui.column.grid > [class*="fourteen wide"].column { + width: @fourteenWide !important; +} +.ui.grid > .row > [class*="fifteen wide"].column, +.ui.grid > .column.row > [class*="fifteen wide"].column, +.ui.grid > [class*="fifteen wide"].column, +.ui.column.grid > [class*="fifteen wide"].column { + width: @fifteenWide !important; +} +.ui.grid > .row > [class*="sixteen wide"].column, +.ui.grid > .column.row > [class*="sixteen wide"].column, +.ui.grid > [class*="sixteen wide"].column, +.ui.column.grid > [class*="sixteen wide"].column { + width: @sixteenWide !important; +} + +/*---------------------- + Width per Device +-----------------------*/ + +/* Mobile Sizing Combinations */ +@media only screen and (min-width: @mobileBreakpoint) and (max-width: @largestMobileScreen) { + .ui.grid > .row > [class*="one wide mobile"].column, + .ui.grid > .column.row > [class*="one wide mobile"].column, + .ui.grid > [class*="one wide mobile"].column, + .ui.column.grid > [class*="one wide mobile"].column { + width: @oneWide !important; + } + .ui.grid > .row > [class*="two wide mobile"].column, + .ui.grid > .column.row > [class*="two wide mobile"].column, + .ui.grid > [class*="two wide mobile"].column, + .ui.column.grid > [class*="two wide mobile"].column { + width: @twoWide !important; + } + .ui.grid > .row > [class*="three wide mobile"].column, + .ui.grid > .column.row > [class*="three wide mobile"].column, + .ui.grid > [class*="three wide mobile"].column, + .ui.column.grid > [class*="three wide mobile"].column { + width: @threeWide !important; + } + .ui.grid > .row > [class*="four wide mobile"].column, + .ui.grid > .column.row > [class*="four wide mobile"].column, + .ui.grid > [class*="four wide mobile"].column, + .ui.column.grid > [class*="four wide mobile"].column { + width: @fourWide !important; + } + .ui.grid > .row > [class*="five wide mobile"].column, + .ui.grid > .column.row > [class*="five wide mobile"].column, + .ui.grid > [class*="five wide mobile"].column, + .ui.column.grid > [class*="five wide mobile"].column { + width: @fiveWide !important; + } + .ui.grid > .row > [class*="six wide mobile"].column, + .ui.grid > .column.row > [class*="six wide mobile"].column, + .ui.grid > [class*="six wide mobile"].column, + .ui.column.grid > [class*="six wide mobile"].column { + width: @sixWide !important; + } + .ui.grid > .row > [class*="seven wide mobile"].column, + .ui.grid > .column.row > [class*="seven wide mobile"].column, + .ui.grid > [class*="seven wide mobile"].column, + .ui.column.grid > [class*="seven wide mobile"].column { + width: @sevenWide !important; + } + .ui.grid > .row > [class*="eight wide mobile"].column, + .ui.grid > .column.row > [class*="eight wide mobile"].column, + .ui.grid > [class*="eight wide mobile"].column, + .ui.column.grid > [class*="eight wide mobile"].column { + width: @eightWide !important; + } + .ui.grid > .row > [class*="nine wide mobile"].column, + .ui.grid > .column.row > [class*="nine wide mobile"].column, + .ui.grid > [class*="nine wide mobile"].column, + .ui.column.grid > [class*="nine wide mobile"].column { + width: @nineWide !important; + } + .ui.grid > .row > [class*="ten wide mobile"].column, + .ui.grid > .column.row > [class*="ten wide mobile"].column, + .ui.grid > [class*="ten wide mobile"].column, + .ui.column.grid > [class*="ten wide mobile"].column { + width: @tenWide !important; + } + .ui.grid > .row > [class*="eleven wide mobile"].column, + .ui.grid > .column.row > [class*="eleven wide mobile"].column, + .ui.grid > [class*="eleven wide mobile"].column, + .ui.column.grid > [class*="eleven wide mobile"].column { + width: @elevenWide !important; + } + .ui.grid > .row > [class*="twelve wide mobile"].column, + .ui.grid > .column.row > [class*="twelve wide mobile"].column, + .ui.grid > [class*="twelve wide mobile"].column, + .ui.column.grid > [class*="twelve wide mobile"].column { + width: @twelveWide !important; + } + .ui.grid > .row > [class*="thirteen wide mobile"].column, + .ui.grid > .column.row > [class*="thirteen wide mobile"].column, + .ui.grid > [class*="thirteen wide mobile"].column, + .ui.column.grid > [class*="thirteen wide mobile"].column { + width: @thirteenWide !important; + } + .ui.grid > .row > [class*="fourteen wide mobile"].column, + .ui.grid > .column.row > [class*="fourteen wide mobile"].column, + .ui.grid > [class*="fourteen wide mobile"].column, + .ui.column.grid > [class*="fourteen wide mobile"].column { + width: @fourteenWide !important; + } + .ui.grid > .row > [class*="fifteen wide mobile"].column, + .ui.grid > .column.row > [class*="fifteen wide mobile"].column, + .ui.grid > [class*="fifteen wide mobile"].column, + .ui.column.grid > [class*="fifteen wide mobile"].column { + width: @fifteenWide !important; + } + .ui.grid > .row > [class*="sixteen wide mobile"].column, + .ui.grid > .column.row > [class*="sixteen wide mobile"].column, + .ui.grid > [class*="sixteen wide mobile"].column, + .ui.column.grid > [class*="sixteen wide mobile"].column { + width: @sixteenWide !important; + } +} + +/* Tablet Sizing Combinations */ +@media only screen and (min-width: @tabletBreakpoint) and (max-width: @largestTabletScreen) { + .ui.grid > .row > [class*="one wide tablet"].column, + .ui.grid > .column.row > [class*="one wide tablet"].column, + .ui.grid > [class*="one wide tablet"].column, + .ui.column.grid > [class*="one wide tablet"].column { + width: @oneWide !important; + } + .ui.grid > .row > [class*="two wide tablet"].column, + .ui.grid > .column.row > [class*="two wide tablet"].column, + .ui.grid > [class*="two wide tablet"].column, + .ui.column.grid > [class*="two wide tablet"].column { + width: @twoWide !important; + } + .ui.grid > .row > [class*="three wide tablet"].column, + .ui.grid > .column.row > [class*="three wide tablet"].column, + .ui.grid > [class*="three wide tablet"].column, + .ui.column.grid > [class*="three wide tablet"].column { + width: @threeWide !important; + } + .ui.grid > .row > [class*="four wide tablet"].column, + .ui.grid > .column.row > [class*="four wide tablet"].column, + .ui.grid > [class*="four wide tablet"].column, + .ui.column.grid > [class*="four wide tablet"].column { + width: @fourWide !important; + } + .ui.grid > .row > [class*="five wide tablet"].column, + .ui.grid > .column.row > [class*="five wide tablet"].column, + .ui.grid > [class*="five wide tablet"].column, + .ui.column.grid > [class*="five wide tablet"].column { + width: @fiveWide !important; + } + .ui.grid > .row > [class*="six wide tablet"].column, + .ui.grid > .column.row > [class*="six wide tablet"].column, + .ui.grid > [class*="six wide tablet"].column, + .ui.column.grid > [class*="six wide tablet"].column { + width: @sixWide !important; + } + .ui.grid > .row > [class*="seven wide tablet"].column, + .ui.grid > .column.row > [class*="seven wide tablet"].column, + .ui.grid > [class*="seven wide tablet"].column, + .ui.column.grid > [class*="seven wide tablet"].column { + width: @sevenWide !important; + } + .ui.grid > .row > [class*="eight wide tablet"].column, + .ui.grid > .column.row > [class*="eight wide tablet"].column, + .ui.grid > [class*="eight wide tablet"].column, + .ui.column.grid > [class*="eight wide tablet"].column { + width: @eightWide !important; + } + .ui.grid > .row > [class*="nine wide tablet"].column, + .ui.grid > .column.row > [class*="nine wide tablet"].column, + .ui.grid > [class*="nine wide tablet"].column, + .ui.column.grid > [class*="nine wide tablet"].column { + width: @nineWide !important; + } + .ui.grid > .row > [class*="ten wide tablet"].column, + .ui.grid > .column.row > [class*="ten wide tablet"].column, + .ui.grid > [class*="ten wide tablet"].column, + .ui.column.grid > [class*="ten wide tablet"].column { + width: @tenWide !important; + } + .ui.grid > .row > [class*="eleven wide tablet"].column, + .ui.grid > .column.row > [class*="eleven wide tablet"].column, + .ui.grid > [class*="eleven wide tablet"].column, + .ui.column.grid > [class*="eleven wide tablet"].column { + width: @elevenWide !important; + } + .ui.grid > .row > [class*="twelve wide tablet"].column, + .ui.grid > .column.row > [class*="twelve wide tablet"].column, + .ui.grid > [class*="twelve wide tablet"].column, + .ui.column.grid > [class*="twelve wide tablet"].column { + width: @twelveWide !important; + } + .ui.grid > .row > [class*="thirteen wide tablet"].column, + .ui.grid > .column.row > [class*="thirteen wide tablet"].column, + .ui.grid > [class*="thirteen wide tablet"].column, + .ui.column.grid > [class*="thirteen wide tablet"].column { + width: @thirteenWide !important; + } + .ui.grid > .row > [class*="fourteen wide tablet"].column, + .ui.grid > .column.row > [class*="fourteen wide tablet"].column, + .ui.grid > [class*="fourteen wide tablet"].column, + .ui.column.grid > [class*="fourteen wide tablet"].column { + width: @fourteenWide !important; + } + .ui.grid > .row > [class*="fifteen wide tablet"].column, + .ui.grid > .column.row > [class*="fifteen wide tablet"].column, + .ui.grid > [class*="fifteen wide tablet"].column, + .ui.column.grid > [class*="fifteen wide tablet"].column { + width: @fifteenWide !important; + } + .ui.grid > .row > [class*="sixteen wide tablet"].column, + .ui.grid > .column.row > [class*="sixteen wide tablet"].column, + .ui.grid > [class*="sixteen wide tablet"].column, + .ui.column.grid > [class*="sixteen wide tablet"].column { + width: @sixteenWide !important; + } +} + +/* Computer/Desktop Sizing Combinations */ +@media only screen and (min-width: @computerBreakpoint) { + .ui.grid > .row > [class*="one wide computer"].column, + .ui.grid > .column.row > [class*="one wide computer"].column, + .ui.grid > [class*="one wide computer"].column, + .ui.column.grid > [class*="one wide computer"].column { + width: @oneWide !important; + } + .ui.grid > .row > [class*="two wide computer"].column, + .ui.grid > .column.row > [class*="two wide computer"].column, + .ui.grid > [class*="two wide computer"].column, + .ui.column.grid > [class*="two wide computer"].column { + width: @twoWide !important; + } + .ui.grid > .row > [class*="three wide computer"].column, + .ui.grid > .column.row > [class*="three wide computer"].column, + .ui.grid > [class*="three wide computer"].column, + .ui.column.grid > [class*="three wide computer"].column { + width: @threeWide !important; + } + .ui.grid > .row > [class*="four wide computer"].column, + .ui.grid > .column.row > [class*="four wide computer"].column, + .ui.grid > [class*="four wide computer"].column, + .ui.column.grid > [class*="four wide computer"].column { + width: @fourWide !important; + } + .ui.grid > .row > [class*="five wide computer"].column, + .ui.grid > .column.row > [class*="five wide computer"].column, + .ui.grid > [class*="five wide computer"].column, + .ui.column.grid > [class*="five wide computer"].column { + width: @fiveWide !important; + } + .ui.grid > .row > [class*="six wide computer"].column, + .ui.grid > .column.row > [class*="six wide computer"].column, + .ui.grid > [class*="six wide computer"].column, + .ui.column.grid > [class*="six wide computer"].column { + width: @sixWide !important; + } + .ui.grid > .row > [class*="seven wide computer"].column, + .ui.grid > .column.row > [class*="seven wide computer"].column, + .ui.grid > [class*="seven wide computer"].column, + .ui.column.grid > [class*="seven wide computer"].column { + width: @sevenWide !important; + } + .ui.grid > .row > [class*="eight wide computer"].column, + .ui.grid > .column.row > [class*="eight wide computer"].column, + .ui.grid > [class*="eight wide computer"].column, + .ui.column.grid > [class*="eight wide computer"].column { + width: @eightWide !important; + } + .ui.grid > .row > [class*="nine wide computer"].column, + .ui.grid > .column.row > [class*="nine wide computer"].column, + .ui.grid > [class*="nine wide computer"].column, + .ui.column.grid > [class*="nine wide computer"].column { + width: @nineWide !important; + } + .ui.grid > .row > [class*="ten wide computer"].column, + .ui.grid > .column.row > [class*="ten wide computer"].column, + .ui.grid > [class*="ten wide computer"].column, + .ui.column.grid > [class*="ten wide computer"].column { + width: @tenWide !important; + } + .ui.grid > .row > [class*="eleven wide computer"].column, + .ui.grid > .column.row > [class*="eleven wide computer"].column, + .ui.grid > [class*="eleven wide computer"].column, + .ui.column.grid > [class*="eleven wide computer"].column { + width: @elevenWide !important; + } + .ui.grid > .row > [class*="twelve wide computer"].column, + .ui.grid > .column.row > [class*="twelve wide computer"].column, + .ui.grid > [class*="twelve wide computer"].column, + .ui.column.grid > [class*="twelve wide computer"].column { + width: @twelveWide !important; + } + .ui.grid > .row > [class*="thirteen wide computer"].column, + .ui.grid > .column.row > [class*="thirteen wide computer"].column, + .ui.grid > [class*="thirteen wide computer"].column, + .ui.column.grid > [class*="thirteen wide computer"].column { + width: @thirteenWide !important; + } + .ui.grid > .row > [class*="fourteen wide computer"].column, + .ui.grid > .column.row > [class*="fourteen wide computer"].column, + .ui.grid > [class*="fourteen wide computer"].column, + .ui.column.grid > [class*="fourteen wide computer"].column { + width: @fourteenWide !important; + } + .ui.grid > .row > [class*="fifteen wide computer"].column, + .ui.grid > .column.row > [class*="fifteen wide computer"].column, + .ui.grid > [class*="fifteen wide computer"].column, + .ui.column.grid > [class*="fifteen wide computer"].column { + width: @fifteenWide !important; + } + .ui.grid > .row > [class*="sixteen wide computer"].column, + .ui.grid > .column.row > [class*="sixteen wide computer"].column, + .ui.grid > [class*="sixteen wide computer"].column, + .ui.column.grid > [class*="sixteen wide computer"].column { + width: @sixteenWide !important; + } +} + +/* Large Monitor Sizing Combinations */ +@media only screen and (min-width: @largeMonitorBreakpoint) and (max-width: @largestLargeMonitor){ + .ui.grid > .row > [class*="one wide large screen"].column, + .ui.grid > .column.row > [class*="one wide large screen"].column, + .ui.grid > [class*="one wide large screen"].column, + .ui.column.grid > [class*="one wide large screen"].column { + width: @oneWide !important; + } + .ui.grid > .row > [class*="two wide large screen"].column, + .ui.grid > .column.row > [class*="two wide large screen"].column, + .ui.grid > [class*="two wide large screen"].column, + .ui.column.grid > [class*="two wide large screen"].column { + width: @twoWide !important; + } + .ui.grid > .row > [class*="three wide large screen"].column, + .ui.grid > .column.row > [class*="three wide large screen"].column, + .ui.grid > [class*="three wide large screen"].column, + .ui.column.grid > [class*="three wide large screen"].column { + width: @threeWide !important; + } + .ui.grid > .row > [class*="four wide large screen"].column, + .ui.grid > .column.row > [class*="four wide large screen"].column, + .ui.grid > [class*="four wide large screen"].column, + .ui.column.grid > [class*="four wide large screen"].column { + width: @fourWide !important; + } + .ui.grid > .row > [class*="five wide large screen"].column, + .ui.grid > .column.row > [class*="five wide large screen"].column, + .ui.grid > [class*="five wide large screen"].column, + .ui.column.grid > [class*="five wide large screen"].column { + width: @fiveWide !important; + } + .ui.grid > .row > [class*="six wide large screen"].column, + .ui.grid > .column.row > [class*="six wide large screen"].column, + .ui.grid > [class*="six wide large screen"].column, + .ui.column.grid > [class*="six wide large screen"].column { + width: @sixWide !important; + } + .ui.grid > .row > [class*="seven wide large screen"].column, + .ui.grid > .column.row > [class*="seven wide large screen"].column, + .ui.grid > [class*="seven wide large screen"].column, + .ui.column.grid > [class*="seven wide large screen"].column { + width: @sevenWide !important; + } + .ui.grid > .row > [class*="eight wide large screen"].column, + .ui.grid > .column.row > [class*="eight wide large screen"].column, + .ui.grid > [class*="eight wide large screen"].column, + .ui.column.grid > [class*="eight wide large screen"].column { + width: @eightWide !important; + } + .ui.grid > .row > [class*="nine wide large screen"].column, + .ui.grid > .column.row > [class*="nine wide large screen"].column, + .ui.grid > [class*="nine wide large screen"].column, + .ui.column.grid > [class*="nine wide large screen"].column { + width: @nineWide !important; + } + .ui.grid > .row > [class*="ten wide large screen"].column, + .ui.grid > .column.row > [class*="ten wide large screen"].column, + .ui.grid > [class*="ten wide large screen"].column, + .ui.column.grid > [class*="ten wide large screen"].column { + width: @tenWide !important; + } + .ui.grid > .row > [class*="eleven wide large screen"].column, + .ui.grid > .column.row > [class*="eleven wide large screen"].column, + .ui.grid > [class*="eleven wide large screen"].column, + .ui.column.grid > [class*="eleven wide large screen"].column { + width: @elevenWide !important; + } + .ui.grid > .row > [class*="twelve wide large screen"].column, + .ui.grid > .column.row > [class*="twelve wide large screen"].column, + .ui.grid > [class*="twelve wide large screen"].column, + .ui.column.grid > [class*="twelve wide large screen"].column { + width: @twelveWide !important; + } + .ui.grid > .row > [class*="thirteen wide large screen"].column, + .ui.grid > .column.row > [class*="thirteen wide large screen"].column, + .ui.grid > [class*="thirteen wide large screen"].column, + .ui.column.grid > [class*="thirteen wide large screen"].column { + width: @thirteenWide !important; + } + .ui.grid > .row > [class*="fourteen wide large screen"].column, + .ui.grid > .column.row > [class*="fourteen wide large screen"].column, + .ui.grid > [class*="fourteen wide large screen"].column, + .ui.column.grid > [class*="fourteen wide large screen"].column { + width: @fourteenWide !important; + } + .ui.grid > .row > [class*="fifteen wide large screen"].column, + .ui.grid > .column.row > [class*="fifteen wide large screen"].column, + .ui.grid > [class*="fifteen wide large screen"].column, + .ui.column.grid > [class*="fifteen wide large screen"].column { + width: @fifteenWide !important; + } + .ui.grid > .row > [class*="sixteen wide large screen"].column, + .ui.grid > .column.row > [class*="sixteen wide large screen"].column, + .ui.grid > [class*="sixteen wide large screen"].column, + .ui.column.grid > [class*="sixteen wide large screen"].column { + width: @sixteenWide !important; + } +} + +/* Widescreen Sizing Combinations */ +@media only screen and (min-width: @widescreenMonitorBreakpoint) { + .ui.grid > .row > [class*="one wide widescreen"].column, + .ui.grid > .column.row > [class*="one wide widescreen"].column, + .ui.grid > [class*="one wide widescreen"].column, + .ui.column.grid > [class*="one wide widescreen"].column { + width: @oneWide !important; + } + .ui.grid > .row > [class*="two wide widescreen"].column, + .ui.grid > .column.row > [class*="two wide widescreen"].column, + .ui.grid > [class*="two wide widescreen"].column, + .ui.column.grid > [class*="two wide widescreen"].column { + width: @twoWide !important; + } + .ui.grid > .row > [class*="three wide widescreen"].column, + .ui.grid > .column.row > [class*="three wide widescreen"].column, + .ui.grid > [class*="three wide widescreen"].column, + .ui.column.grid > [class*="three wide widescreen"].column { + width: @threeWide !important; + } + .ui.grid > .row > [class*="four wide widescreen"].column, + .ui.grid > .column.row > [class*="four wide widescreen"].column, + .ui.grid > [class*="four wide widescreen"].column, + .ui.column.grid > [class*="four wide widescreen"].column { + width: @fourWide !important; + } + .ui.grid > .row > [class*="five wide widescreen"].column, + .ui.grid > .column.row > [class*="five wide widescreen"].column, + .ui.grid > [class*="five wide widescreen"].column, + .ui.column.grid > [class*="five wide widescreen"].column { + width: @fiveWide !important; + } + .ui.grid > .row > [class*="six wide widescreen"].column, + .ui.grid > .column.row > [class*="six wide widescreen"].column, + .ui.grid > [class*="six wide widescreen"].column, + .ui.column.grid > [class*="six wide widescreen"].column { + width: @sixWide !important; + } + .ui.grid > .row > [class*="seven wide widescreen"].column, + .ui.grid > .column.row > [class*="seven wide widescreen"].column, + .ui.grid > [class*="seven wide widescreen"].column, + .ui.column.grid > [class*="seven wide widescreen"].column { + width: @sevenWide !important; + } + .ui.grid > .row > [class*="eight wide widescreen"].column, + .ui.grid > .column.row > [class*="eight wide widescreen"].column, + .ui.grid > [class*="eight wide widescreen"].column, + .ui.column.grid > [class*="eight wide widescreen"].column { + width: @eightWide !important; + } + .ui.grid > .row > [class*="nine wide widescreen"].column, + .ui.grid > .column.row > [class*="nine wide widescreen"].column, + .ui.grid > [class*="nine wide widescreen"].column, + .ui.column.grid > [class*="nine wide widescreen"].column { + width: @nineWide !important; + } + .ui.grid > .row > [class*="ten wide widescreen"].column, + .ui.grid > .column.row > [class*="ten wide widescreen"].column, + .ui.grid > [class*="ten wide widescreen"].column, + .ui.column.grid > [class*="ten wide widescreen"].column { + width: @tenWide !important; + } + .ui.grid > .row > [class*="eleven wide widescreen"].column, + .ui.grid > .column.row > [class*="eleven wide widescreen"].column, + .ui.grid > [class*="eleven wide widescreen"].column, + .ui.column.grid > [class*="eleven wide widescreen"].column { + width: @elevenWide !important; + } + .ui.grid > .row > [class*="twelve wide widescreen"].column, + .ui.grid > .column.row > [class*="twelve wide widescreen"].column, + .ui.grid > [class*="twelve wide widescreen"].column, + .ui.column.grid > [class*="twelve wide widescreen"].column { + width: @twelveWide !important; + } + .ui.grid > .row > [class*="thirteen wide widescreen"].column, + .ui.grid > .column.row > [class*="thirteen wide widescreen"].column, + .ui.grid > [class*="thirteen wide widescreen"].column, + .ui.column.grid > [class*="thirteen wide widescreen"].column { + width: @thirteenWide !important; + } + .ui.grid > .row > [class*="fourteen wide widescreen"].column, + .ui.grid > .column.row > [class*="fourteen wide widescreen"].column, + .ui.grid > [class*="fourteen wide widescreen"].column, + .ui.column.grid > [class*="fourteen wide widescreen"].column { + width: @fourteenWide !important; + } + .ui.grid > .row > [class*="fifteen wide widescreen"].column, + .ui.grid > .column.row > [class*="fifteen wide widescreen"].column, + .ui.grid > [class*="fifteen wide widescreen"].column, + .ui.column.grid > [class*="fifteen wide widescreen"].column { + width: @fifteenWide !important; + } + .ui.grid > .row > [class*="sixteen wide widescreen"].column, + .ui.grid > .column.row > [class*="sixteen wide widescreen"].column, + .ui.grid > [class*="sixteen wide widescreen"].column, + .ui.column.grid > [class*="sixteen wide widescreen"].column { + width: @sixteenWide !important; + } +} + +/*---------------------- + Centered +-----------------------*/ + +.ui.centered.grid, +.ui.centered.grid > .row, +.ui.grid > .centered.row { + text-align: center; + justify-content: center; +} +.ui.centered.grid > .column:not(.aligned):not(.justified):not(.row), +.ui.centered.grid > .row > .column:not(.aligned):not(.justified), +.ui.grid .centered.row > .column:not(.aligned):not(.justified) { + text-align: left; +} + +.ui.grid > .centered.column, +.ui.grid > .row > .centered.column { + display: block; + margin-left: auto; + margin-right: auto; +} + +/*---------------------- + Relaxed +-----------------------*/ + +.ui.relaxed.grid > .column:not(.row), +.ui.relaxed.grid > .row > .column, +.ui.grid > .relaxed.row > .column { + padding-left: (@relaxedGutterWidth / 2); + padding-right: (@relaxedGutterWidth / 2); +} + +.ui[class*="very relaxed"].grid > .column:not(.row), +.ui[class*="very relaxed"].grid > .row > .column, +.ui.grid > [class*="very relaxed"].row > .column { + padding-left: (@veryRelaxedGutterWidth / 2); + padding-right: (@veryRelaxedGutterWidth / 2); +} + +/* Coupling with UI Divider */ +.ui.relaxed.grid .row + .ui.divider, +.ui.grid .relaxed.row + .ui.divider { + margin-left: (@relaxedGutterWidth / 2); + margin-right: (@relaxedGutterWidth / 2); +} +.ui[class*="very relaxed"].grid .row + .ui.divider, +.ui.grid [class*="very relaxed"].row + .ui.divider { + margin-left: (@veryRelaxedGutterWidth / 2); + margin-right: (@veryRelaxedGutterWidth / 2); +} + + +/*---------------------- + Padded +-----------------------*/ + +.ui.padded.grid:not(.vertically):not(.horizontally) { + margin: 0em !important; +} +[class*="horizontally padded"].ui.grid { + margin-left: 0em !important; + margin-right: 0em !important; +} +[class*="vertically padded"].ui.grid { + margin-top: 0em !important; + margin-bottom: 0em !important; +} + +/*---------------------- + "Floated" +-----------------------*/ + +.ui.grid [class*="left floated"].column { + margin-right: auto; +} +.ui.grid [class*="right floated"].column { + margin-left: auto; +} + + +/*---------------------- + Divided +-----------------------*/ + +.ui.divided.grid:not([class*="vertically divided"]) > .column:not(.row), +.ui.divided.grid:not([class*="vertically divided"]) > .row > .column { + box-shadow: @dividedBorder; +} + +/* Swap from padding to margin on columns to have dividers align */ +.ui[class*="vertically divided"].grid > .column:not(.row), +.ui[class*="vertically divided"].grid > .row > .column { + margin-top: (@rowSpacing / 2); + margin-bottom: (@rowSpacing / 2); + padding-top: 0rem; + padding-bottom: 0rem; +} +.ui[class*="vertically divided"].grid > .row { + margin-top: 0em; + margin-bottom: 0em; +} + + + +/* No divider on first column on row */ +.ui.divided.grid:not([class*="vertically divided"]) > .column:first-child, +.ui.divided.grid:not([class*="vertically divided"]) > .row > .column:first-child { + box-shadow: none; +} + +/* No space on top of first row */ +.ui[class*="vertically divided"].grid > .row:first-child > .column { + margin-top: 0em; +} + + +/* Divided Row */ +.ui.grid > .divided.row > .column { + box-shadow: @dividedBorder; +} +.ui.grid > .divided.row > .column:first-child { + box-shadow: none; +} + +/* Vertically Divided */ +.ui[class*="vertically divided"].grid > .row { + position: relative; +} +.ui[class*="vertically divided"].grid > .row:before { + position: absolute; + content: ""; + top: 0em; + left: 0px; + + width: calc(100% - @gutterWidth); + height: 1px; + + margin: 0% (@gutterWidth / 2); + box-shadow: @verticallyDividedBorder; +} + +/* Padded Horizontally Divided */ +[class*="horizontally padded"].ui.divided.grid, +.ui.padded.divided.grid:not(.vertically):not(.horizontally) { + width: 100%; +} + +/* First Row Vertically Divided */ +.ui[class*="vertically divided"].grid > .row:first-child:before { + box-shadow: none; +} + +/* Inverted Divided */ +.ui.inverted.divided.grid:not([class*="vertically divided"]) > .column:not(.row), +.ui.inverted.divided.grid:not([class*="vertically divided"]) > .row > .column { + box-shadow: @dividedInvertedBorder; +} +.ui.inverted.divided.grid:not([class*="vertically divided"]) > .column:not(.row):first-child, +.ui.inverted.divided.grid:not([class*="vertically divided"]) > .row > .column:first-child { + box-shadow: none; +} +.ui.inverted[class*="vertically divided"].grid > .row:before { + box-shadow: @verticallyDividedInvertedBorder; +} + +/* Relaxed */ +.ui.relaxed[class*="vertically divided"].grid > .row:before { + margin-left: (@relaxedGutterWidth / 2); + margin-right: (@relaxedGutterWidth / 2); + width: calc(100% - @relaxedGutterWidth); +} +.ui[class*="very relaxed"][class*="vertically divided"].grid > .row:before { + margin-left: (@veryRelaxedGutterWidth / 2); + margin-right: (@veryRelaxedGutterWidth / 2); + width: calc(100% - @veryRelaxedGutterWidth); +} + +/*---------------------- + Celled +-----------------------*/ + +.ui.celled.grid { + width: 100%; + margin: @celledMargin; + box-shadow: @celledGridDivider; +} + +.ui.celled.grid > .row { + width: 100% !important; + margin: 0em; + padding: 0em; + box-shadow: @celledRowDivider; +} +.ui.celled.grid > .column:not(.row), +.ui.celled.grid > .row > .column { + box-shadow: @celledColumnDivider; +} + +.ui.celled.grid > .column:first-child, +.ui.celled.grid > .row > .column:first-child { + box-shadow: none; +} + +.ui.celled.grid > .column:not(.row), +.ui.celled.grid > .row > .column { + padding: @celledPadding; +} +.ui.relaxed.celled.grid > .column:not(.row), +.ui.relaxed.celled.grid > .row > .column { + padding: @celledRelaxedPadding; +} +.ui[class*="very relaxed"].celled.grid > .column:not(.row), +.ui[class*="very relaxed"].celled.grid > .row > .column { + padding: @celledVeryRelaxedPadding; +} + +/* Internally Celled */ +.ui[class*="internally celled"].grid { + box-shadow: none; + margin: 0em; +} +.ui[class*="internally celled"].grid > .row:first-child { + box-shadow: none; +} +.ui[class*="internally celled"].grid > .row > .column:first-child { + box-shadow: none; +} + +/*---------------------- + Vertically Aligned +-----------------------*/ + +/* Top Aligned */ +.ui[class*="top aligned"].grid > .column:not(.row), +.ui[class*="top aligned"].grid > .row > .column, +.ui.grid > [class*="top aligned"].row > .column, +.ui.grid > [class*="top aligned"].column:not(.row), +.ui.grid > .row > [class*="top aligned"].column { + flex-direction: column; + vertical-align: top; + align-self: flex-start !important; +} + +/* Middle Aligned */ +.ui[class*="middle aligned"].grid > .column:not(.row), +.ui[class*="middle aligned"].grid > .row > .column, +.ui.grid > [class*="middle aligned"].row > .column, +.ui.grid > [class*="middle aligned"].column:not(.row), +.ui.grid > .row > [class*="middle aligned"].column { + flex-direction: column; + vertical-align: middle; + align-self: center !important; +} + +/* Bottom Aligned */ +.ui[class*="bottom aligned"].grid > .column:not(.row), +.ui[class*="bottom aligned"].grid > .row > .column, +.ui.grid > [class*="bottom aligned"].row > .column, +.ui.grid > [class*="bottom aligned"].column:not(.row), +.ui.grid > .row > [class*="bottom aligned"].column { + flex-direction: column; + vertical-align: bottom; + align-self: flex-end !important; +} + +/* Stretched */ +.ui.stretched.grid > .row > .column, +.ui.stretched.grid > .column, +.ui.grid > .stretched.row > .column, +.ui.grid > .stretched.column:not(.row), +.ui.grid > .row > .stretched.column { + display: inline-flex !important; + align-self: stretch; + flex-direction: column; +} + +.ui.stretched.grid > .row > .column > *, +.ui.stretched.grid > .column > *, +.ui.grid > .stretched.row > .column > *, +.ui.grid > .stretched.column:not(.row) > *, +.ui.grid > .row > .stretched.column > * { + flex-grow: 1; +} + +/*---------------------- + Horizontally Centered +-----------------------*/ + +/* Left Aligned */ +.ui[class*="left aligned"].grid > .column, +.ui[class*="left aligned"].grid > .row > .column, +.ui.grid > [class*="left aligned"].row > .column, +.ui.grid > [class*="left aligned"].column.column, +.ui.grid > .row > [class*="left aligned"].column.column { + text-align: left; + align-self: inherit; +} + +/* Center Aligned */ +.ui[class*="center aligned"].grid > .column, +.ui[class*="center aligned"].grid > .row > .column, +.ui.grid > [class*="center aligned"].row > .column, +.ui.grid > [class*="center aligned"].column.column, +.ui.grid > .row > [class*="center aligned"].column.column { + text-align: center; + align-self: inherit; +} +.ui[class*="center aligned"].grid { + justify-content: center; +} + +/* Right Aligned */ +.ui[class*="right aligned"].grid > .column, +.ui[class*="right aligned"].grid > .row > .column, +.ui.grid > [class*="right aligned"].row > .column, +.ui.grid > [class*="right aligned"].column.column, +.ui.grid > .row > [class*="right aligned"].column.column { + text-align: right; + align-self: inherit; +} + +/* Justified */ +.ui.justified.grid > .column, +.ui.justified.grid > .row > .column, +.ui.grid > .justified.row > .column, +.ui.grid > .justified.column.column, +.ui.grid > .row > .justified.column.column { + text-align: justify; + hyphens: auto; +} + +/*---------------------- + Colored +-----------------------*/ + +.ui.grid > .row > .red.column, +.ui.grid > .row > .orange.column, +.ui.grid > .row > .yellow.column, +.ui.grid > .row > .olive.column, +.ui.grid > .row > .green.column, +.ui.grid > .row > .teal.column, +.ui.grid > .row > .blue.column, +.ui.grid > .row > .violet.column, +.ui.grid > .row > .purple.column, +.ui.grid > .row > .pink.column, +.ui.grid > .row > .brown.column, +.ui.grid > .row > .grey.column, +.ui.grid > .row > .black.column { + margin-top: -(@rowSpacing / 2); + margin-bottom: -(@rowSpacing / 2); + padding-top: (@rowSpacing / 2); + padding-bottom: (@rowSpacing / 2); +} + +/* Red */ +.ui.grid > .red.row, +.ui.grid > .red.column, +.ui.grid > .row > .red.column { + background-color: @red !important; + color: @white; +} +/* Orange */ +.ui.grid > .orange.row, +.ui.grid > .orange.column, +.ui.grid > .row > .orange.column { + background-color: @orange !important; + color: @white; +} +/* Yellow */ +.ui.grid > .yellow.row, +.ui.grid > .yellow.column, +.ui.grid > .row > .yellow.column { + background-color: @yellow !important; + color: @white; +} +/* Olive */ +.ui.grid > .olive.row, +.ui.grid > .olive.column, +.ui.grid > .row > .olive.column { + background-color: @olive !important; + color: @white; +} +/* Green */ +.ui.grid > .green.row, +.ui.grid > .green.column, +.ui.grid > .row > .green.column { + background-color: @green !important; + color: @white; +} +/* Teal */ +.ui.grid > .teal.row, +.ui.grid > .teal.column, +.ui.grid > .row > .teal.column { + background-color: @teal !important; + color: @white; +} +/* Blue */ +.ui.grid > .blue.row, +.ui.grid > .blue.column, +.ui.grid > .row > .blue.column { + background-color: @blue !important; + color: @white; +} +/* Violet */ +.ui.grid > .violet.row, +.ui.grid > .violet.column, +.ui.grid > .row > .violet.column { + background-color: @violet !important; + color: @white; +} +/* Purple */ +.ui.grid > .purple.row, +.ui.grid > .purple.column, +.ui.grid > .row > .purple.column { + background-color: @purple !important; + color: @white; +} +/* Pink */ +.ui.grid > .pink.row, +.ui.grid > .pink.column, +.ui.grid > .row > .pink.column { + background-color: @pink !important; + color: @white; +} +/* Brown */ +.ui.grid > .brown.row, +.ui.grid > .brown.column, +.ui.grid > .row > .brown.column { + background-color: @brown !important; + color: @white; +} +/* Grey */ +.ui.grid > .grey.row, +.ui.grid > .grey.column, +.ui.grid > .row > .grey.column { + background-color: @grey !important; + color: @white; +} +/* Black */ +.ui.grid > .black.row, +.ui.grid > .black.column, +.ui.grid > .row > .black.column { + background-color: @black !important; + color: @white; +} + + +/*---------------------- + Equal Width +-----------------------*/ + +.ui[class*="equal width"].grid > .column:not(.row), +.ui[class*="equal width"].grid > .row > .column, +.ui.grid > [class*="equal width"].row > .column { + display: inline-block; + flex-grow: 1; +} +.ui[class*="equal width"].grid > .wide.column, +.ui[class*="equal width"].grid > .row > .wide.column, +.ui.grid > [class*="equal width"].row > .wide.column { + flex-grow: 0; +} + + +/*---------------------- + Reverse +-----------------------*/ + + +/* Mobile */ +@media only screen and (max-width: @largestMobileScreen) { + .ui[class*="mobile reversed"].grid, + .ui[class*="mobile reversed"].grid > .row, + .ui.grid > [class*="mobile reversed"].row { + flex-direction: row-reverse; + } + .ui[class*="mobile vertically reversed"].grid, + .ui.stackable[class*="mobile reversed"] { + flex-direction: column-reverse; + } + + /* Divided Reversed */ + .ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"]) > .column:first-child, + .ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:first-child { + box-shadow: @dividedBorder; + } + .ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"]) > .column:last-child, + .ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:last-child { + box-shadow: none; + } + /* Vertically Divided Reversed */ + .ui.grid[class*="vertically divided"][class*="mobile vertically reversed"] > .row:first-child:before { + box-shadow: @verticallyDividedBorder; + } + .ui.grid[class*="vertically divided"][class*="mobile vertically reversed"] > .row:last-child:before { + box-shadow: none; + } + /* Celled Reversed */ + .ui[class*="mobile reversed"].celled.grid > .row > .column:first-child { + box-shadow: @celledColumnDivider; + } + .ui[class*="mobile reversed"].celled.grid > .row > .column:last-child { + box-shadow: none; + } +} + +/* Tablet */ +@media only screen and (min-width: @tabletBreakpoint) and (max-width: @largestTabletScreen) { + .ui[class*="tablet reversed"].grid, + .ui[class*="tablet reversed"].grid > .row, + .ui.grid > [class*="tablet reversed"].row { + flex-direction: row-reverse; + } + .ui[class*="tablet vertically reversed"].grid { + flex-direction: column-reverse; + } + + /* Divided Reversed */ + .ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"]) > .column:first-child, + .ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:first-child { + box-shadow: @dividedBorder; + } + .ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"]) > .column:last-child, + .ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:last-child { + box-shadow: none; + } + /* Vertically Divided Reversed */ + .ui.grid[class*="vertically divided"][class*="tablet vertically reversed"] > .row:first-child:before { + box-shadow: @verticallyDividedBorder; + } + .ui.grid[class*="vertically divided"][class*="tablet vertically reversed"] > .row:last-child:before { + box-shadow: none; + } + /* Celled Reversed */ + .ui[class*="tablet reversed"].celled.grid > .row > .column:first-child { + box-shadow: @celledColumnDivider; + } + .ui[class*="tablet reversed"].celled.grid > .row > .column:last-child { + box-shadow: none; + } +} + +/* Computer */ +@media only screen and (min-width: @computerBreakpoint) { + .ui[class*="computer reversed"].grid, + .ui[class*="computer reversed"].grid > .row, + .ui.grid > [class*="computer reversed"].row { + flex-direction: row-reverse; + } + .ui[class*="computer vertically reversed"].grid { + flex-direction: column-reverse; + } + + /* Divided Reversed */ + .ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"]) > .column:first-child, + .ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:first-child { + box-shadow: @dividedBorder; + } + .ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"]) > .column:last-child, + .ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:last-child { + box-shadow: none; + } + /* Vertically Divided Reversed */ + .ui.grid[class*="vertically divided"][class*="computer vertically reversed"] > .row:first-child:before { + box-shadow: @verticallyDividedBorder; + } + .ui.grid[class*="vertically divided"][class*="computer vertically reversed"] > .row:last-child:before { + box-shadow: none; + } + /* Celled Reversed */ + .ui[class*="computer reversed"].celled.grid > .row > .column:first-child { + box-shadow: @celledColumnDivider; + } + .ui[class*="computer reversed"].celled.grid > .row > .column:last-child { + box-shadow: none; + } +} + + +/*------------------- + Doubling +--------------------*/ + +/* Tablet Only */ +@media only screen and (min-width: @tabletBreakpoint) and (max-width: @largestTabletScreen) { + .ui.doubling.grid { + width: auto; + } + .ui.grid > .doubling.row, + .ui.doubling.grid > .row { + margin: 0em !important; + padding: 0em !important; + } + .ui.grid > .doubling.row > .column, + .ui.doubling.grid > .row > .column { + display: inline-block !important; + padding-top: (@rowSpacing / 2) !important; + padding-bottom: (@rowSpacing / 2) !important; + box-shadow: none !important; + margin: 0em; + } + .ui[class*="two column"].doubling.grid > .row > .column, + .ui[class*="two column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="two column"].doubling.row.row > .column { + width: @oneColumn !important; + } + .ui[class*="three column"].doubling.grid > .row > .column, + .ui[class*="three column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="three column"].doubling.row.row > .column { + width: @twoColumn !important; + } + .ui[class*="four column"].doubling.grid > .row > .column, + .ui[class*="four column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="four column"].doubling.row.row > .column { + width: @twoColumn !important; + } + .ui[class*="five column"].doubling.grid > .row > .column, + .ui[class*="five column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="five column"].doubling.row.row > .column { + width: @threeColumn !important; + } + .ui[class*="six column"].doubling.grid > .row > .column, + .ui[class*="six column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="six column"].doubling.row.row > .column { + width: @threeColumn !important; + } + .ui[class*="seven column"].doubling.grid > .row > .column, + .ui[class*="seven column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="seven column"].doubling.row.row > .column { + width: @threeColumn !important; + } + .ui[class*="eight column"].doubling.grid > .row > .column, + .ui[class*="eight column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="eight column"].doubling.row.row > .column { + width: @fourColumn !important; + } + .ui[class*="nine column"].doubling.grid > .row > .column, + .ui[class*="nine column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="nine column"].doubling.row.row > .column { + width: @fourColumn !important; + } + .ui[class*="ten column"].doubling.grid > .row > .column, + .ui[class*="ten column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="ten column"].doubling.row.row > .column { + width: @fiveColumn !important; + } + .ui[class*="eleven column"].doubling.grid > .row > .column, + .ui[class*="eleven column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="eleven column"].doubling.row.row > .column { + width: @fiveColumn !important; + } + .ui[class*="twelve column"].doubling.grid > .row > .column, + .ui[class*="twelve column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="twelve column"].doubling.row.row > .column { + width: @sixColumn !important; + } + .ui[class*="thirteen column"].doubling.grid > .row > .column, + .ui[class*="thirteen column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="thirteen column"].doubling.row.row > .column { + width: @sixColumn !important; + } + .ui[class*="fourteen column"].doubling.grid > .row > .column, + .ui[class*="fourteen column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="fourteen column"].doubling.row.row > .column { + width: @sevenColumn !important; + } + .ui[class*="fifteen column"].doubling.grid > .row > .column, + .ui[class*="fifteen column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="fifteen column"].doubling.row.row > .column { + width: @sevenColumn !important; + } + .ui[class*="sixteen column"].doubling.grid > .row > .column, + .ui[class*="sixteen column"].doubling.grid > .column:not(.row), + .ui.grid > [class*="sixteen column"].doubling.row.row > .column { + width: @eightColumn !important; + } +} + +/* Mobile Only */ +@media only screen and (max-width: @largestMobileScreen) { + .ui.grid > .doubling.row, + .ui.doubling.grid > .row { + margin: 0em !important; + padding: 0em !important; + } + .ui.grid > .doubling.row > .column, + .ui.doubling.grid > .row > .column { + padding-top: (@rowSpacing / 2) !important; + padding-bottom: (@rowSpacing / 2) !important; + margin: 0em !important; + box-shadow: none !important; + } + .ui[class*="two column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="two column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="two column"].doubling:not(.stackable).row.row > .column { + width: @oneColumn !important; + } + .ui[class*="three column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="three column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="three column"].doubling:not(.stackable).row.row > .column { + width: @twoColumn !important; + } + .ui[class*="four column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="four column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="four column"].doubling:not(.stackable).row.row > .column { + width: @twoColumn !important; + } + .ui[class*="five column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="five column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="five column"].doubling:not(.stackable).row.row > .column { + width: @twoColumn !important; + } + .ui[class*="six column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="six column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="six column"].doubling:not(.stackable).row.row > .column { + width: @twoColumn !important; + } + .ui[class*="seven column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="seven column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="seven column"].doubling:not(.stackable).row.row > .column { + width: @twoColumn !important; + } + .ui[class*="eight column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="eight column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="eight column"].doubling:not(.stackable).row.row > .column { + width: @twoColumn !important; + } + .ui[class*="nine column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="nine column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="nine column"].doubling:not(.stackable).row.row > .column { + width: @threeColumn !important; + } + .ui[class*="ten column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="ten column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="ten column"].doubling:not(.stackable).row.row > .column { + width: @threeColumn !important; + } + .ui[class*="eleven column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="eleven column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="eleven column"].doubling:not(.stackable).row.row > .column { + width: @threeColumn !important; + } + .ui[class*="twelve column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="twelve column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="twelve column"].doubling:not(.stackable).row.row > .column { + width: @threeColumn !important; + } + .ui[class*="thirteen column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="thirteen column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="thirteen column"].doubling:not(.stackable).row.row > .column { + width: @threeColumn !important; + } + .ui[class*="fourteen column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="fourteen column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="fourteen column"].doubling:not(.stackable).row.row > .column { + width: @fourColumn !important; + } + .ui[class*="fifteen column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="fifteen column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="fifteen column"].doubling:not(.stackable).row.row > .column { + width: @fourColumn !important; + } + .ui[class*="sixteen column"].doubling:not(.stackable).grid > .row > .column, + .ui[class*="sixteen column"].doubling:not(.stackable).grid > .column:not(.row), + .ui.grid > [class*="sixteen column"].doubling:not(.stackable).row.row > .column { + width: @fourColumn !important; + } +} + +/*------------------- + Stackable +--------------------*/ + +@media only screen and (max-width: @largestMobileScreen) { + .ui.stackable.grid { + width: auto; + margin-left: 0em !important; + margin-right: 0em !important; + } + .ui.stackable.grid > .row > .wide.column, + .ui.stackable.grid > .wide.column, + .ui.stackable.grid > .column.grid > .column, + .ui.stackable.grid > .column.row > .column, + .ui.stackable.grid > .row > .column, + .ui.stackable.grid > .column:not(.row), + .ui.grid > .stackable.stackable.row > .column { + width: 100% !important; + margin: 0em 0em !important; + box-shadow: none !important; + padding: (@stackableRowSpacing / 2) (@stackableGutter / 2) !important; + } + .ui.stackable.grid:not(.vertically) > .row { + margin: 0em; + padding: 0em; + } + + /* Coupling */ + .ui.container > .ui.stackable.grid > .column, + .ui.container > .ui.stackable.grid > .row > .column { + padding-left: 0em !important; + padding-right: 0em !important; + } + + /* Don't pad inside segment or nested grid */ + .ui.grid .ui.stackable.grid, + .ui.segment:not(.vertical) .ui.stackable.page.grid { + margin-left: -(@stackableGutter / 2) !important; + margin-right: -(@stackableGutter / 2) !important; + } + + /* Divided Stackable */ + .ui.stackable.divided.grid > .row:first-child > .column:first-child, + .ui.stackable.celled.grid > .row:first-child > .column:first-child, + .ui.stackable.divided.grid > .column:not(.row):first-child, + .ui.stackable.celled.grid > .column:not(.row):first-child { + border-top: none !important; + } + .ui.inverted.stackable.celled.grid > .column:not(.row), + .ui.inverted.stackable.divided.grid > .column:not(.row), + .ui.inverted.stackable.celled.grid > .row > .column, + .ui.inverted.stackable.divided.grid > .row > .column { + border-top: @stackableInvertedMobileBorder; + } + + .ui.stackable.celled.grid > .column:not(.row), + .ui.stackable.divided:not(.vertically).grid > .column:not(.row), + .ui.stackable.celled.grid > .row > .column, + .ui.stackable.divided:not(.vertically).grid > .row > .column { + border-top: @stackableMobileBorder; + box-shadow: none !important; + padding-top: @stackableRowSpacing !important; + padding-bottom: @stackableRowSpacing !important; + } + + .ui.stackable.celled.grid > .row { + box-shadow: none !important; + } + .ui.stackable.divided:not(.vertically).grid > .column:not(.row), + .ui.stackable.divided:not(.vertically).grid > .row > .column { + padding-left: 0em !important; + padding-right: 0em !important; + } + +} + +/*---------------------- + Only (Device) +-----------------------*/ + + +/* These include arbitrary class repetitions for forced specificity */ + +/* Mobile Only Hide */ +@media only screen and (max-width: @largestMobileScreen) { + .ui[class*="tablet only"].grid.grid.grid:not(.mobile), + .ui.grid.grid.grid > [class*="tablet only"].row:not(.mobile), + .ui.grid.grid.grid > [class*="tablet only"].column:not(.mobile), + .ui.grid.grid.grid > .row > [class*="tablet only"].column:not(.mobile) { + display: none !important; + } + .ui[class*="computer only"].grid.grid.grid:not(.mobile), + .ui.grid.grid.grid > [class*="computer only"].row:not(.mobile), + .ui.grid.grid.grid > [class*="computer only"].column:not(.mobile), + .ui.grid.grid.grid > .row > [class*="computer only"].column:not(.mobile) { + display: none !important; + } + .ui[class*="large screen only"].grid.grid.grid:not(.mobile), + .ui.grid.grid.grid > [class*="large screen only"].row:not(.mobile), + .ui.grid.grid.grid > [class*="large screen only"].column:not(.mobile), + .ui.grid.grid.grid > .row > [class*="large screen only"].column:not(.mobile) { + display: none !important; + } + .ui[class*="widescreen only"].grid.grid.grid:not(.mobile), + .ui.grid.grid.grid > [class*="widescreen only"].row:not(.mobile), + .ui.grid.grid.grid > [class*="widescreen only"].column:not(.mobile), + .ui.grid.grid.grid > .row > [class*="widescreen only"].column:not(.mobile) { + display: none !important; + } +} +/* Tablet Only Hide */ +@media only screen and (min-width: @tabletBreakpoint) and (max-width: @largestTabletScreen) { + .ui[class*="mobile only"].grid.grid.grid:not(.tablet), + .ui.grid.grid.grid > [class*="mobile only"].row:not(.tablet), + .ui.grid.grid.grid > [class*="mobile only"].column:not(.tablet), + .ui.grid.grid.grid > .row > [class*="mobile only"].column:not(.tablet) { + display: none !important; + } + .ui[class*="computer only"].grid.grid.grid:not(.tablet), + .ui.grid.grid.grid > [class*="computer only"].row:not(.tablet), + .ui.grid.grid.grid > [class*="computer only"].column:not(.tablet), + .ui.grid.grid.grid > .row > [class*="computer only"].column:not(.tablet) { + display: none !important; + } + .ui[class*="large screen only"].grid.grid.grid:not(.mobile), + .ui.grid.grid.grid > [class*="large screen only"].row:not(.mobile), + .ui.grid.grid.grid > [class*="large screen only"].column:not(.mobile), + .ui.grid.grid.grid > .row > [class*="large screen only"].column:not(.mobile) { + display: none !important; + } + .ui[class*="widescreen only"].grid.grid.grid:not(.mobile), + .ui.grid.grid.grid > [class*="widescreen only"].row:not(.mobile), + .ui.grid.grid.grid > [class*="widescreen only"].column:not(.mobile), + .ui.grid.grid.grid > .row > [class*="widescreen only"].column:not(.mobile) { + display: none !important; + } +} + +/* Computer Only Hide */ +@media only screen and (min-width: @computerBreakpoint) and (max-width: @largestSmallMonitor) { + .ui[class*="mobile only"].grid.grid.grid:not(.computer), + .ui.grid.grid.grid > [class*="mobile only"].row:not(.computer), + .ui.grid.grid.grid > [class*="mobile only"].column:not(.computer), + .ui.grid.grid.grid > .row > [class*="mobile only"].column:not(.computer) { + display: none !important; + } + .ui[class*="tablet only"].grid.grid.grid:not(.computer), + .ui.grid.grid.grid > [class*="tablet only"].row:not(.computer), + .ui.grid.grid.grid > [class*="tablet only"].column:not(.computer), + .ui.grid.grid.grid > .row > [class*="tablet only"].column:not(.computer) { + display: none !important; + } + .ui[class*="large screen only"].grid.grid.grid:not(.mobile), + .ui.grid.grid.grid > [class*="large screen only"].row:not(.mobile), + .ui.grid.grid.grid > [class*="large screen only"].column:not(.mobile), + .ui.grid.grid.grid > .row > [class*="large screen only"].column:not(.mobile) { + display: none !important; + } + .ui[class*="widescreen only"].grid.grid.grid:not(.mobile), + .ui.grid.grid.grid > [class*="widescreen only"].row:not(.mobile), + .ui.grid.grid.grid > [class*="widescreen only"].column:not(.mobile), + .ui.grid.grid.grid > .row > [class*="widescreen only"].column:not(.mobile) { + display: none !important; + } +} + +/* Large Screen Only Hide */ +@media only screen and (min-width: @largeMonitorBreakpoint) and (max-width: @largestLargeMonitor) { + .ui[class*="mobile only"].grid.grid.grid:not(.computer), + .ui.grid.grid.grid > [class*="mobile only"].row:not(.computer), + .ui.grid.grid.grid > [class*="mobile only"].column:not(.computer), + .ui.grid.grid.grid > .row > [class*="mobile only"].column:not(.computer) { + display: none !important; + } + .ui[class*="tablet only"].grid.grid.grid:not(.computer), + .ui.grid.grid.grid > [class*="tablet only"].row:not(.computer), + .ui.grid.grid.grid > [class*="tablet only"].column:not(.computer), + .ui.grid.grid.grid > .row > [class*="tablet only"].column:not(.computer) { + display: none !important; + } + .ui[class*="widescreen only"].grid.grid.grid:not(.mobile), + .ui.grid.grid.grid > [class*="widescreen only"].row:not(.mobile), + .ui.grid.grid.grid > [class*="widescreen only"].column:not(.mobile), + .ui.grid.grid.grid > .row > [class*="widescreen only"].column:not(.mobile) { + display: none !important; + } +} + +/* Widescreen Only Hide */ +@media only screen and (min-width: @widescreenMonitorBreakpoint) { + .ui[class*="mobile only"].grid.grid.grid:not(.computer), + .ui.grid.grid.grid > [class*="mobile only"].row:not(.computer), + .ui.grid.grid.grid > [class*="mobile only"].column:not(.computer), + .ui.grid.grid.grid > .row > [class*="mobile only"].column:not(.computer) { + display: none !important; + } + .ui[class*="tablet only"].grid.grid.grid:not(.computer), + .ui.grid.grid.grid > [class*="tablet only"].row:not(.computer), + .ui.grid.grid.grid > [class*="tablet only"].column:not(.computer), + .ui.grid.grid.grid > .row > [class*="tablet only"].column:not(.computer) { + display: none !important; + } +} + + +.loadUIOverrides(); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/collections/menu.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/collections/menu.less new file mode 100644 index 00000000..5e483065 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/collections/menu.less @@ -0,0 +1,1981 @@ +/* + * # Semantic - Menu + * http://github.com/semantic-org/semantic-ui/ + * + * + * Copyright 2015 Contributor + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + + +/******************************* + Theme +*******************************/ + +@type : 'collection'; +@element : 'menu'; + +@import (multiple) '../../theme.config'; + +/******************************* + Standard +*******************************/ + +/*-------------- + Menu +---------------*/ + +.ui.menu { + display: flex; + margin: @margin; + font-family: @fontFamily; + background: @background; + font-weight: @fontWeight; + border: @border; + box-shadow: @boxShadow; + border-radius: @borderRadius; + min-height: @minHeight; +} + +.ui.menu:after { + content: ''; + display: block; + height: 0px; + clear: both; + visibility: hidden; +} + +.ui.menu:first-child { + margin-top: 0rem; +} +.ui.menu:last-child { + margin-bottom: 0rem; +} + + +/*-------------- + Sub-Menu +---------------*/ + +.ui.menu .menu { + margin: 0em; +} + +.ui.menu:not(.vertical) > .menu { + display: flex; +} + +/*-------------- + Item +---------------*/ + +.ui.menu:not(.vertical) .item { + display: flex; + align-items: center; +} + +.ui.menu .item { + position: relative; + vertical-align: middle; + line-height: 1; + text-decoration: none; + -webkit-tap-highlight-color: transparent; + flex: 0 0 auto; + user-select: none; + + background: @itemBackground; + padding: @itemVerticalPadding @itemHorizontalPadding; + text-transform: @itemTextTransform; + color: @itemTextColor; + font-weight: @itemFontWeight; + transition: @itemTransition; +} + +.ui.menu > .item:first-child { + border-radius: @borderRadius 0px 0px @borderRadius; +} + +/* Border */ +.ui.menu .item:before { + position: absolute; + content: ''; + top: 0%; + right: 0px; + height: 100%; + + width: @dividerSize; + background: @dividerBackground; +} + +/*-------------- + Text Content +---------------*/ + +.ui.menu .text.item > *, +.ui.menu .item > a:not(.ui), +.ui.menu .item > p:only-child { + user-select: text; + line-height: @textLineHeight; +} +.ui.menu .item > p:first-child { + margin-top: 0; +} +.ui.menu .item > p:last-child { + margin-bottom: 0; +} + +/*-------------- + Icons +---------------*/ + +.ui.menu .item > i.icon { + opacity: @iconOpacity; + float: @iconFloat; + margin: @iconMargin; +} + +/*-------------- + Button +---------------*/ + +.ui.menu:not(.vertical) .item > .button { + position: relative; + top: @buttonOffset; + margin: @buttonMargin; + padding-bottom: @buttonVerticalPadding; + padding-top: @buttonVerticalPadding; + font-size: @buttonSize; +} + +/*---------------- + Grid / Container +-----------------*/ + +.ui.menu > .grid, +.ui.menu > .container { + display: flex; + align-items: inherit; + flex-direction: inherit; +} + +/*-------------- + Inputs +---------------*/ + +.ui.menu .item > .input { + width: 100%; +} +.ui.menu:not(.vertical) .item > .input { + position: relative; + top: @inputOffset; + margin: @inputVerticalMargin 0em; +} +.ui.menu .item > .input input { + font-size: @inputSize; + padding-top: @inputVerticalPadding; + padding-bottom: @inputVerticalPadding; +} + + +/*-------------- + Header +---------------*/ + +.ui.menu .header.item, +.ui.vertical.menu .header.item { + margin: 0em; + background: @headerBackground; + text-transform: @headerTextTransform; + font-weight: @headerWeight; +} + +.ui.vertical.menu .item > .header:not(.ui) { + margin: @verticalHeaderMargin; + font-size: @verticalHeaderFontSize; + font-weight: @verticalHeaderFontWeight; +} + +/*-------------- + Dropdowns +---------------*/ + + +/* Dropdown Icon */ +.ui.menu .item > i.dropdown.icon { + padding: 0em; + float: @dropdownIconFloat; + margin: 0em 0em 0em @dropdownIconDistance; +} + +/* Menu */ +.ui.menu .dropdown.item .menu { + min-width: calc(100% - 1px); + border-radius: 0em 0em @dropdownMenuBorderRadius @dropdownMenuBorderRadius; + background: @dropdownBackground; + margin: @dropdownMenuDistance 0px 0px; + box-shadow: @dropdownMenuBoxShadow; + flex-direction: column !important; +} + + +/* Menu Items */ +.ui.menu .ui.dropdown .menu > .item { + margin: 0; + text-align: left; + font-size: @dropdownItemFontSize !important; + padding: @dropdownItemPadding !important; + background: @dropdownItemBackground !important; + color: @dropdownItemColor !important; + text-transform: @dropdownItemTextTransform !important; + font-weight: @dropdownItemFontWeight !important; + box-shadow: @dropdownItemBoxShadow !important; + transition: @dropdownItemTransition !important; +} +.ui.menu .ui.dropdown .menu > .item:hover { + background: @dropdownHoveredItemBackground !important; + color: @dropdownHoveredItemColor !important; +} +.ui.menu .ui.dropdown .menu > .selected.item { + background: @dropdownSelectedItemBackground !important; + color: @dropdownSelectedItemColor !important; +} +.ui.menu .ui.dropdown .menu > .active.item { + background: @dropdownActiveItemBackground !important; + font-weight: @dropdownActiveItemFontWeight !important; + color: @dropdownActiveItemColor !important; +} + +.ui.menu .ui.dropdown.item .menu .item:not(.filtered) { + display: block; +} +.ui.menu .ui.dropdown .menu > .item .icon:not(.dropdown) { + display: inline-block; + font-size: @dropdownItemIconFontSize !important; + float: @dropdownItemIconFloat; + margin: @dropdownItemIconMargin !important; +} + + +/* Secondary */ +.ui.secondary.menu .dropdown.item > .menu, +.ui.text.menu .dropdown.item > .menu { + border-radius: @dropdownMenuBorderRadius; + margin-top: @secondaryDropdownMenuDistance; +} + +/* Pointing */ +.ui.menu .pointing.dropdown.item .menu { + margin-top: @pointingDropdownMenuDistance; +} + +/* Inverted */ +.ui.inverted.menu .search.dropdown.item > .search, +.ui.inverted.menu .search.dropdown.item > .text { + color: @invertedSelectionDropdownColor; +} + +/* Vertical */ +.ui.vertical.menu .dropdown.item > .icon { + float: right; + content: "\f0da"; + margin-left: 1em; +} +.ui.vertical.menu .dropdown.item .menu { + left: 100%; + min-width: 0; + margin: 0em 0em 0em @dropdownMenuDistance; + box-shadow: @dropdownVerticalMenuBoxShadow; + border-radius: 0em @dropdownMenuBorderRadius @dropdownMenuBorderRadius @dropdownMenuBorderRadius; +} +.ui.vertical.menu .dropdown.item.upward .menu { + bottom: 0; +} +.ui.vertical.menu .dropdown.item:not(.upward) .menu { + top: 0; +} +.ui.vertical.menu .active.dropdown.item { + border-top-right-radius: 0em; + border-bottom-right-radius: 0em; +} +.ui.vertical.menu .dropdown.active.item { + box-shadow: none; +} + +/* Evenly Divided */ +.ui.item.menu .dropdown .menu .item { + width: 100%; +} + +/*-------------- + Labels +---------------*/ + +.ui.menu .item > .label { + background: @labelBackground; + color: @labelTextColor; + margin-left: @labelTextMargin; + padding: @labelVerticalPadding @labelHorizontalPadding; +} +.ui.vertical.menu .item > .label { + background: @labelBackground; + color: @labelTextColor; + margin-top: @labelOffset; + margin-bottom: @labelOffset; + padding: @labelVerticalPadding @labelHorizontalPadding; +} +.ui.menu .item > .floating.label { + padding: @labelVerticalPadding @labelHorizontalPadding; +} + +/*-------------- + Images +---------------*/ + +.ui.menu .item > img:not(.ui) { + display: inline-block; + vertical-align: middle; + margin: @imageMargin; + width: @imageWidth; +} +.ui.vertical.menu .item > img:not(.ui):only-child { + display: block; + max-width: 100%; + width: @verticalImageWidth; +} + +/******************************* + Coupling +*******************************/ + +/*-------------- + List +---------------*/ + +/* Menu divider shouldnt apply */ +.ui.menu .list .item:before { + background: none !important; +} + +/*-------------- + Sidebar +---------------*/ + +/* Show vertical dividers below last */ + +.ui.vertical.sidebar.menu > .item:first-child:before { + display: block !important; +} +.ui.vertical.sidebar.menu > .item::before { + top: auto; + bottom: 0px; +} + +/*-------------- + Container +---------------*/ + +@media only screen and (max-width: @largestMobileScreen) { + .ui.menu > .ui.container { + width: 100% !important; + margin-left: 0em !important; + margin-right: 0em !important; + } +} +@media only screen and (min-width: @tabletBreakpoint) { + .ui.menu:not(.secondary):not(.text):not(.tabular):not(.borderless) > .container > .item:not(.right):not(.borderless):first-child { + border-left: @dividerSize solid @dividerBackground; + } +} + + +/******************************* + States +*******************************/ + +/*-------------- + Hover +---------------*/ + + +.ui.link.menu .item:hover, +.ui.menu .dropdown.item:hover, +.ui.menu .link.item:hover, +.ui.menu a.item:hover { + cursor: pointer; + background: @hoverItemBackground; + color: @hoverItemTextColor; +} + + +/*-------------- + Pressed +---------------*/ + +.ui.link.menu .item:active, +.ui.menu .link.item:active, +.ui.menu a.item:active { + background: @pressedItemBackground; + color: @pressedItemTextColor; +} + + +/*-------------- + Active +---------------*/ + +.ui.menu .active.item { + background: @activeItemBackground; + color: @activeItemTextColor; + font-weight: @activeItemFontWeight; + box-shadow: @activeItemBoxShadow; +} +.ui.menu .active.item > i.icon { + opacity: @activeIconOpacity; +} + +/*-------------- + Active Hover +---------------*/ + +.ui.menu .active.item:hover, +.ui.vertical.menu .active.item:hover { + background-color: @activeHoverItemBackground; + color: @activeHoverItemColor; +} + + +/*-------------- + Disabled +---------------*/ + +.ui.menu .item.disabled, +.ui.menu .item.disabled:hover { + cursor: default !important; + background-color: transparent !important; + color: @disabledTextColor !important; +} + + +/******************************* + Types +*******************************/ + +/*------------------ +Floated Menu / Item +-------------------*/ + +/* Left Floated */ +.ui.menu:not(.vertical) .left.item, +.ui.menu:not(.vertical) :not(.dropdown) > .left.menu { + display: flex; + margin-right: auto !important; +} +/* Right Floated */ +.ui.menu:not(.vertical) .right.item, +.ui.menu:not(.vertical) .right.menu { + display: flex; + margin-left: auto !important; +} + +/* Swapped Borders */ +.ui.menu .right.item::before, +.ui.menu .right.menu > .item::before { + right: auto; + left: 0; +} + + +/*-------------- + Vertical +---------------*/ + +.ui.vertical.menu { + display: block; + flex-direction: column; + background: @verticalBackground; + box-shadow: @verticalBoxShadow; +} + +/*--- Item ---*/ +.ui.vertical.menu .item { + display: block; + background: @verticalItemBackground; + border-top: none; + border-right: none; +} +.ui.vertical.menu > .item:first-child { + border-radius: @borderRadius @borderRadius 0px 0px; +} +.ui.vertical.menu > .item:last-child { + border-radius: 0px 0px @borderRadius @borderRadius; +} + +/*--- Label ---*/ +.ui.vertical.menu .item > .label { + float: right; + text-align: center; +} + +/*--- Icon ---*/ +.ui.vertical.menu .item > i.icon { + width: @iconWidth; + float: @verticalIconFloat; + margin: @verticalIconMargin; +} +.ui.vertical.menu .item > .label + i.icon { + float: @labelAndIconFloat; + margin: @labelAndIconMargin; +} + + +/*--- Border ---*/ +.ui.vertical.menu .item:before { + position: absolute; + content: ''; + top: 0%; + left: 0px; + width: 100%; + height: @dividerSize; + background: @verticalDividerBackground; +} + +.ui.vertical.menu .item:first-child:before { + display: none !important; +} + + +/*--- Sub Menu ---*/ +.ui.vertical.menu .item > .menu { + margin: @subMenuMargin; +} +.ui.vertical.menu .menu .item { + background: none; + padding: @subMenuVerticalPadding @subMenuHorizontalPadding; + font-size: @subMenuFontSize; + color: @subMenuTextColor; +} +.ui.vertical.menu .item .menu a.item:hover, +.ui.vertical.menu .item .menu .link.item:hover { + color: @darkTextColor; +} +.ui.vertical.menu .menu .item:before { + display: none; +} + +/* Vertical Active */ +.ui.vertical.menu .active.item { + background: @activeItemBackground; + border-radius: 0em; + box-shadow: @verticalActiveBoxShadow; +} +.ui.vertical.menu > .active.item:first-child { + border-radius: @borderRadius @borderRadius 0em 0em; +} +.ui.vertical.menu > .active.item:last-child { + border-radius: 0em 0em @borderRadius @borderRadius; +} +.ui.vertical.menu > .active.item:only-child { + border-radius: @borderRadius; +} +.ui.vertical.menu .active.item .menu .active.item { + border-left: none; +} +.ui.vertical.menu .item .menu .active.item { + background-color: @subMenuActiveBackground; + font-weight: @subMenuActiveFontWeight; + color: @subMenuActiveTextColor; +} + + +/*-------------- + Tabular +---------------*/ + +.ui.tabular.menu { + border-radius: 0em; + box-shadow: none !important; + border: none; + background: @tabularBackground; + border-bottom: @tabularBorderWidth solid @tabularBorderColor; +} +.ui.tabular.fluid.menu { + width: @tabularFluidWidth !important; +} +.ui.tabular.menu .item { + background: transparent; + border-bottom: none; + + border-left: @tabularBorderWidth solid transparent; + border-right: @tabularBorderWidth solid transparent; + border-top: @tabularOppositeBorderWidth solid transparent; + padding: @tabularVerticalPadding @tabularHorizontalPadding; + color: @tabularTextColor; +} +.ui.tabular.menu .item:before { + display: none; +} + +/* Hover */ +.ui.tabular.menu .item:hover { + background-color: transparent; + color: @tabularHoveredTextColor; +} + +/* Active */ +.ui.tabular.menu .active.item { + background: @tabularActiveBackground; + color: @tabularActiveColor; + border-top-width: @tabularBorderWidth; + border-color: @tabularBorderColor; + font-weight: @tabularActiveWeight; + margin-bottom: -@tabularBorderWidth; + box-shadow: @tabularActiveBoxShadow; + border-radius: @tabularBorderRadius @tabularBorderRadius 0px 0px !important; +} + +/* Coupling with segment for attachment */ +.ui.tabular.menu + .attached:not(.top).segment, +.ui.tabular.menu + .attached:not(.top).segment + .attached:not(.top).segment { + border-top: none; + margin-left: 0px; + margin-top: 0px; + margin-right: 0px; + width: 100%; +} +.top.attached.segment + .ui.bottom.tabular.menu { + position: relative; + width: @tabularFluidWidth; + left: -@tabularFluidOffset; +} + +/* Bottom Vertical Tabular */ +.ui.bottom.tabular.menu { + background: @tabularBackground; + border-radius: 0em; + box-shadow: none !important; + border-bottom: none; + border-top: @tabularBorderWidth solid @tabularBorderColor; +} +.ui.bottom.tabular.menu .item { + background: none; + border-left: @tabularBorderWidth solid transparent; + border-right: @tabularBorderWidth solid transparent; + border-bottom: @tabularBorderWidth solid transparent; + border-top: none; +} +.ui.bottom.tabular.menu .active.item { + background: @tabularActiveBackground; + color: @tabularActiveColor; + border-color: @tabularBorderColor; + margin: -@tabularBorderWidth 0px 0px 0px; + border-radius: 0px 0px @tabularBorderRadius @tabularBorderRadius !important; +} + +/* Vertical Tabular (Left) */ +.ui.vertical.tabular.menu { + background: @tabularVerticalBackground; + border-radius: 0em; + box-shadow: none !important; + border-bottom: none; + border-right: @tabularBorderWidth solid @tabularBorderColor; +} +.ui.vertical.tabular.menu .item { + background: none; + border-left: @tabularBorderWidth solid transparent; + border-bottom: @tabularBorderWidth solid transparent; + border-top: @tabularBorderWidth solid transparent; + border-right: none; +} +.ui.vertical.tabular.menu .active.item { + background: @tabularActiveBackground; + color: @tabularActiveColor; + border-color: @tabularBorderColor; + margin: 0px -@tabularBorderWidth 0px 0px; + border-radius: @tabularBorderRadius 0px 0px @tabularBorderRadius !important; +} + +/* Vertical Right Tabular */ +.ui.vertical.right.tabular.menu { + background: @tabularVerticalBackground; + border-radius: 0em; + box-shadow: none !important; + border-bottom: none; + border-right: none; + border-left: @tabularBorderWidth solid @tabularBorderColor; +} +.ui.vertical.right.tabular.menu .item { + background: none; + border-right: @tabularBorderWidth solid transparent; + border-bottom: @tabularBorderWidth solid transparent; + border-top: @tabularBorderWidth solid transparent; + border-left: none; +} +.ui.vertical.right.tabular.menu .active.item { + background: @tabularActiveBackground; + color: @tabularActiveColor; + border-color: @tabularBorderColor; + margin: 0px 0px 0px -@tabularBorderWidth; + border-radius: 0px @tabularBorderRadius @tabularBorderRadius 0px !important; +} + +/* Dropdown */ +.ui.tabular.menu .active.dropdown.item { + margin-bottom: 0px; + border-left: @tabularBorderWidth solid transparent; + border-right: @tabularBorderWidth solid transparent; + border-top: @tabularOppositeBorderWidth solid transparent; + border-bottom: none; +} + + + +/*-------------- + Pagination +---------------*/ + +.ui.pagination.menu { + margin: 0em; + display: inline-flex; + vertical-align: middle; +} +.ui.pagination.menu .item:last-child { + border-radius: 0em @borderRadius @borderRadius 0em; +} +.ui.compact.menu .item:last-child { + border-radius: 0em @borderRadius @borderRadius 0em; +} +.ui.pagination.menu .item:last-child:before { + display: none; +} + +.ui.pagination.menu .item { + min-width: @paginationMinWidth; + text-align: center; +} +.ui.pagination.menu .icon.item i.icon { + vertical-align: top; +} + +/* Active */ +.ui.pagination.menu .active.item { + border-top: none; + padding-top: @itemVerticalPadding; + background-color: @paginationActiveBackground; + color: @paginationActiveTextColor; + box-shadow: none; +} + +/*-------------- + Secondary +---------------*/ + +.ui.secondary.menu { + background: @secondaryBackground; + margin-left: -@secondaryItemSpacing; + margin-right: -@secondaryItemSpacing; + border-radius: 0em; + border: none; + box-shadow: none; +} + +/* Item */ +.ui.secondary.menu .item { + align-self: center; + box-shadow: none; + border: none; + padding: @secondaryItemPadding; + margin: @secondaryItemMargin; + background: @secondaryItemBackground; + transition: @secondaryItemTransition; + border-radius: @secondaryItemBorderRadius; +} + +/* No Divider */ +.ui.secondary.menu .item:before { + display: none !important; +} + +/* Header */ +.ui.secondary.menu .header.item { + border-radius: 0em; + border-right: @secondaryHeaderBorder; + background: @secondaryHeaderBackground; +} + +/* Image */ +.ui.secondary.menu .item > img:not(.ui) { + margin: 0em; +} + +/* Hover */ +.ui.secondary.menu .dropdown.item:hover, +.ui.secondary.menu .link.item:hover, +.ui.secondary.menu a.item:hover { + background: @secondaryHoverItemBackground; + color: @secondaryHoverItemColor; +} + +/* Active */ +.ui.secondary.menu .active.item { + box-shadow: none; + background: @secondaryActiveItemBackground; + color: @secondaryActiveItemColor; + border-radius: @secondaryItemBorderRadius; +} + +/* Active Hover */ +.ui.secondary.menu .active.item:hover { + box-shadow: none; + background: @secondaryActiveHoverItemBackground; + color: @secondaryActiveHoverItemColor; +} + + +/* Inverted */ +.ui.secondary.inverted.menu .link.item, +.ui.secondary.inverted.menu a.item { + color: @secondaryInvertedColor !important; +} +.ui.secondary.inverted.menu .dropdown.item:hover, +.ui.secondary.inverted.menu .link.item:hover, +.ui.secondary.inverted.menu a.item:hover { + background: @secondaryInvertedHoverBackground; + color: @secondaryInvertedHoverColor !important; +} +.ui.secondary.inverted.menu .active.item { + background: @secondaryInvertedActiveBackground; + color: @secondaryInvertedActiveColor !important; +} + +/* Fix item margins */ +.ui.secondary.item.menu { + margin-left: 0em; + margin-right: 0em; +} +.ui.secondary.item.menu .item:last-child { + margin-right: 0em; +} +.ui.secondary.attached.menu { + box-shadow: none; +} + +/* Sub Menu */ +.ui.vertical.secondary.menu .item:not(.dropdown) > .menu { + margin: @secondaryMenuSubMenuMargin; +} +.ui.vertical.secondary.menu .item:not(.dropdown) > .menu > .item { + margin: @secondaryMenuSubMenuItemMargin; + padding: @secondaryMenuSubMenuItemPadding; +} + + +/*--------------------- + Secondary Vertical +-----------------------*/ + +.ui.secondary.vertical.menu > .item { + border: none; + margin: @secondaryVerticalItemMargin; + border-radius: @secondaryVerticalItemBorderRadius !important; +} +.ui.secondary.vertical.menu > .header.item { + border-radius: 0em; +} + +/* Sub Menu */ +.ui.vertical.secondary.menu .item > .menu .item { + background-color: transparent; +} + +/* Inverted */ +.ui.secondary.inverted.menu { + background-color: transparent; +} + +/*--------------------- + Secondary Pointing +-----------------------*/ + +.ui.secondary.pointing.menu { + margin-left: 0em; + margin-right: 0em; + border-bottom: @secondaryPointingBorderWidth solid @secondaryPointingBorderColor; +} + +.ui.secondary.pointing.menu .item { + border-bottom-color: transparent; + border-bottom-style: solid; + border-radius: 0em; + align-self: flex-end; + + margin: 0em 0em -@secondaryPointingBorderWidth; + padding: @secondaryPointingItemVerticalPadding @secondaryPointingItemHorizontalPadding; + border-bottom-width: @secondaryPointingBorderWidth; + transition: @secondaryItemTransition; +} + +/* Item Types */ +.ui.secondary.pointing.menu .header.item { + color: @secondaryPointingHeaderColor !important; +} +.ui.secondary.pointing.menu .text.item { + box-shadow: none !important; +} +.ui.secondary.pointing.menu .item:after { + display: none; +} + +/* Hover */ +.ui.secondary.pointing.menu .dropdown.item:hover, +.ui.secondary.pointing.menu .link.item:hover, +.ui.secondary.pointing.menu a.item:hover { + background-color: transparent; + color: @secondaryPointingHoverTextColor; +} + +/* Pressed */ +.ui.secondary.pointing.menu .dropdown.item:active, +.ui.secondary.pointing.menu .link.item:active, +.ui.secondary.pointing.menu a.item:active { + background-color: transparent; + border-color: @secondaryPointingBorderColor; +} + +/* Active */ +.ui.secondary.pointing.menu .active.item { + background-color: transparent; + box-shadow: none; + border-color: @secondaryPointingActiveBorderColor; + font-weight: @secondaryPointingActiveFontWeight; + color: @secondaryPointingActiveTextColor; +} + +/* Active Hover */ +.ui.secondary.pointing.menu .active.item:hover { + border-color: @secondaryPointingActiveHoverBorderColor; + color: @secondaryPointingActiveHoverTextColor; +} + +/* Active Dropdown */ +.ui.secondary.pointing.menu .active.dropdown.item { + border-color: @secondaryPointingActiveDropdownBorderColor; +} + +/* Vertical Pointing */ +.ui.secondary.vertical.pointing.menu { + border-bottom-width: 0px; + border-right-width: @secondaryPointingBorderWidth; + border-right-style: solid; + border-right-color: @secondaryPointingBorderColor; +} +.ui.secondary.vertical.pointing.menu .item { + border-bottom: none; + border-right-style: solid; + border-right-color: transparent; + border-radius: 0em !important; + margin: @secondaryVerticalPointingItemMargin; + border-right-width: @secondaryPointingBorderWidth; +} + +/* Vertical Active */ +.ui.secondary.vertical.pointing.menu .active.item { + border-color: @secondaryPointingActiveBorderColor; +} + +/* Inverted */ +.ui.secondary.inverted.pointing.menu { + border-color: @secondaryPointingInvertedBorderColor; +} + +.ui.secondary.inverted.pointing.menu { + border-width: @secondaryPointingBorderWidth; + border-color: @secondaryPointingBorderColor; +} +.ui.secondary.inverted.pointing.menu .item { + color: @secondaryPointingInvertedItemTextColor; +} +.ui.secondary.inverted.pointing.menu .header.item { + color: @secondaryPointingInvertedItemHeaderColor !important; +} + +/* Hover */ +.ui.secondary.inverted.pointing.menu .link.item:hover, +.ui.secondary.inverted.pointing.menu a.item:hover { + color: @secondaryPointingInvertedItemHoverTextColor; +} + + +/* Active */ +.ui.secondary.inverted.pointing.menu .active.item { + border-color: @secondaryPointingInvertedActiveBorderColor; + color: @secondaryPointingInvertedActiveColor; +} + +/*-------------- + Text Menu +---------------*/ + +.ui.text.menu { + background: none transparent; + border-radius: 0px; + box-shadow: none; + border: none; + + margin: @textMenuMargin; +} +.ui.text.menu .item { + border-radius: 0px; + box-shadow: none; + align-self: center; + margin: @textMenuItemMargin; + padding: @textMenuItemPadding; + font-weight: @textMenuItemFontWeight; + color: @textMenuItemColor; + transition: @textMenuItemTransition; +} + +/* Border */ +.ui.text.menu .item:before, +.ui.text.menu .menu .item:before { + display: none !important; +} + +/* Header */ +.ui.text.menu .header.item { + background-color: transparent; + opacity: 1; + color: @textMenuHeaderColor; + font-size: @textMenuHeaderSize; + text-transform: @textMenuHeaderTextTransform; + font-weight: @textMenuHeaderFontWeight; +} + +/* Image */ +.ui.text.menu .item > img:not(.ui) { + margin: 0em; +} + +/*--- fluid text ---*/ +.ui.text.item.menu .item { + margin: 0em; +} + +/*--- vertical text ---*/ +.ui.vertical.text.menu { + margin: @textVerticalMenuMargin; +} +.ui.vertical.text.menu:first-child { + margin-top: 0rem; +} +.ui.vertical.text.menu:last-child { + margin-bottom: 0rem; +} +.ui.vertical.text.menu .item { + margin: @textVerticalMenuItemMargin; + padding-left: 0em; + padding-right: 0em; +} +.ui.vertical.text.menu .item > i.icon { + float: @textVerticalMenuIconFloat; + margin: @iconMargin; +} +.ui.vertical.text.menu .header.item { + margin: @textVerticalMenuHeaderMargin; +} + +/* Vertical Sub Menu */ +.ui.vertical.text.menu .item:not(.dropdown) > .menu { + margin: @textMenuSubMenuMargin; +} +.ui.vertical.text.menu .item:not(.dropdown) > .menu > .item { + margin: @textMenuSubMenuItemMargin; + padding: @textMenuSubMenuItemPadding; +} + +/*--- hover ---*/ +.ui.text.menu .item:hover { + opacity: 1; + background-color: transparent; +} + +/*--- active ---*/ +.ui.text.menu .active.item { + background-color: transparent; + border: none; + box-shadow: none; + font-weight: @textMenuActiveItemFontWeight; + color: @textMenuActiveItemColor; +} + +/*--- active hover ---*/ +.ui.text.menu .active.item:hover { + background-color: transparent; +} + +/* Disable Bariations */ +.ui.text.pointing.menu .active.item:after { + box-shadow: none; +} +.ui.text.attached.menu { + box-shadow: none; +} + +/* Inverted */ +.ui.inverted.text.menu, +.ui.inverted.text.menu .item, +.ui.inverted.text.menu .item:hover, +.ui.inverted.text.menu .active.item { + background-color: transparent !important; +} + +/* Fluid */ +.ui.fluid.text.menu { + margin-left: 0em; + margin-right: 0em; +} + +/*-------------- + Icon Only +---------------*/ + +/* Vertical Menu */ +.ui.vertical.icon.menu { + display: inline-block; + width: auto; +} + +/* Item */ +.ui.icon.menu .item { + height: auto; + text-align: @iconMenuTextAlign; + color: @iconMenuItemColor; +} + +/* Icon */ +.ui.icon.menu .item > .icon:not(.dropdown) { + margin: 0; + opacity: 1; +} + +/* Icon Gylph */ +.ui.icon.menu .icon:before { + opacity: 1; +} + +/* (x) Item Icon */ +.ui.menu .icon.item > .icon { + width: auto; + margin: 0em auto; +} + +/* Vertical Icon */ +.ui.vertical.icon.menu .item > .icon:not(.dropdown) { + display: block; + opacity: 1; + margin: 0em auto; + float: none; +} + +/* Inverted */ +.ui.inverted.icon.menu .item { + color: @iconMenuInvertedItemColor; +} + +/*-------------- + Labeled Icon +---------------*/ + +/* Menu */ +.ui.labeled.icon.menu { + text-align: center; +} + +/* Item */ +.ui.labeled.icon.menu .item { + min-width: @labeledIconMinWidth; + flex-direction: column; +} + +/* Icon */ +.ui.labeled.icon.menu .item > .icon:not(.dropdown) { + height: 1em; + display: block; + font-size: @labeledIconSize !important; + margin: 0em auto @labeledIconTextMargin !important; +} + +/* Fluid */ +.ui.fluid.labeled.icon.menu > .item { + min-width: 0em; +} + + +/******************************* + Variations +*******************************/ + +/*-------------- + Stackable +---------------*/ + +@media only screen and (max-width: @largestMobileScreen) { + .ui.stackable.menu { + flex-direction: column; + } + .ui.stackable.menu .item { + width: 100% !important; + } + .ui.stackable.menu .item:before { + position: absolute; + content: ''; + top: auto; + bottom: 0px; + left: 0px; + width: 100%; + height: @dividerSize; + background: @verticalDividerBackground; + } + + .ui.stackable.menu .left.menu, + .ui.stackable.menu .left.item { + margin-right: 0 !important; + } + .ui.stackable.menu .right.menu, + .ui.stackable.menu .right.item { + margin-left: 0 !important; + } + + .ui.stackable.menu .right.menu, + .ui.stackable.menu .left.menu { + flex-direction: column; + } +} + +/*-------------- + Colors +---------------*/ + +/*--- Standard Colors ---*/ +.ui.menu .red.active.item, +.ui.red.menu .active.item { + border-color: @red !important; + color: @red !important; +} +.ui.menu .orange.active.item, +.ui.orange.menu .active.item { + border-color: @orange !important; + color: @orange !important; +} +.ui.menu .yellow.active.item, +.ui.yellow.menu .active.item { + border-color: @yellow !important; + color: @yellow !important; +} +.ui.menu .olive.active.item, +.ui.olive.menu .active.item { + border-color: @olive !important; + color: @olive !important; +} +.ui.menu .green.active.item, +.ui.green.menu .active.item { + border-color: @green !important; + color: @green !important; +} +.ui.menu .teal.active.item, +.ui.teal.menu .active.item { + border-color: @teal !important; + color: @teal !important; +} +.ui.menu .blue.active.item, +.ui.blue.menu .active.item { + border-color: @blue !important; + color: @blue !important; +} +.ui.menu .violet.active.item, +.ui.violet.menu .active.item { + border-color: @violet !important; + color: @violet !important; +} +.ui.menu .purple.active.item, +.ui.purple.menu .active.item { + border-color: @purple !important; + color: @purple !important; +} +.ui.menu .pink.active.item, +.ui.pink.menu .active.item { + border-color: @pink !important; + color: @pink !important; +} +.ui.menu .brown.active.item, +.ui.brown.menu .active.item { + border-color: @brown !important; + color: @brown !important; +} +.ui.menu .grey.active.item, +.ui.grey.menu .active.item { + border-color: @grey !important; + color: @grey !important; +} + + +/*-------------- + Inverted +---------------*/ + +.ui.inverted.menu { + border: @invertedBorder; + background: @invertedBackground; + box-shadow: @invertedBoxShadow; +} + +/* Menu Item */ +.ui.inverted.menu .item, +.ui.inverted.menu .item > a:not(.ui) { + background: @invertedItemBackground; + color: @invertedItemTextColor; +} +.ui.inverted.menu .item.menu { + background: @invertedSubMenuBackground; +} + +/*--- Border ---*/ +.ui.inverted.menu .item:before { + background: @invertedDividerBackground; +} +.ui.vertical.inverted.menu .item:before { + background: @invertedVerticalDividerBackground; +} + +/* Sub Menu */ +.ui.vertical.inverted.menu .menu .item, +.ui.vertical.inverted.menu .menu .item a:not(.ui) { + color: @invertedSubMenuColor; +} + +/* Header */ +.ui.inverted.menu .header.item { + margin: 0em; + background: @invertedHeaderBackground; + box-shadow: none; +} + +/* Disabled */ +.ui.inverted.menu .item.disabled, +.ui.inverted.menu .item.disabled:hover { + color: @invertedDisabledTextColor; +} + +/*--- Hover ---*/ +.ui.link.inverted.menu .item:hover, +.ui.inverted.menu .dropdown.item:hover, +.ui.inverted.menu .link.item:hover, +.ui.inverted.menu a.item:hover { + background: @invertedHoverBackground; + color: @invertedHoverColor; +} +.ui.vertical.inverted.menu .item .menu a.item:hover, +.ui.vertical.inverted.menu .item .menu .link.item:hover { + background: @invertedSubMenuBackground; + color: @invertedSubMenuHoverColor; +} + +/*--- Pressed ---*/ +.ui.inverted.menu a.item:active, +.ui.inverted.menu .link.item:active{ + background: @invertedMenuPressedBackground; + color: @invertedMenuPressedColor; +} + +/*--- Active ---*/ +.ui.inverted.menu .active.item { + background: @invertedActiveBackground; + color: @invertedActiveColor !important; +} +.ui.inverted.vertical.menu .item .menu .active.item { + background: @invertedSubMenuActiveBackground; + color: @invertedSubMenuActiveColor; +} +.ui.inverted.pointing.menu .active.item:after { + background: @invertedArrowActiveColor !important; + margin: 0em !important; + box-shadow: none !important; + border: none !important; +} + +/*--- Active Hover ---*/ +.ui.inverted.menu .active.item:hover { + background: @invertedActiveHoverBackground; + color: @invertedActiveHoverColor !important; +} +.ui.inverted.pointing.menu .active.item:hover:after { + background: @invertedArrowActiveHoverColor !important; +} + + +/*-------------- + Floated +---------------*/ + +.ui.floated.menu { + float: left; + margin: 0rem @floatedDistance 0rem 0rem; +} +.ui.floated.menu .item:last-child:before { + display: none; +} + +.ui.right.floated.menu { + float: right; + margin: 0rem 0rem 0rem @floatedDistance; +} + + +/*-------------- + Inverted +---------------*/ + +/* Red */ +.ui.inverted.menu .red.active.item, +.ui.inverted.red.menu { + background-color: @red; +} +.ui.inverted.red.menu .item:before { + background-color: @invertedColoredDividerBackground; +} +.ui.inverted.red.menu .active.item { + background-color: @invertedColoredActiveBackground !important; +} + +/* Orange */ +.ui.inverted.menu .orange.active.item, +.ui.inverted.orange.menu { + background-color: @orange; +} +.ui.inverted.orange.menu .item:before { + background-color: @invertedColoredDividerBackground; +} +.ui.inverted.orange.menu .active.item { + background-color: @invertedColoredActiveBackground !important; +} + +/* Yellow */ +.ui.inverted.menu .yellow.active.item, +.ui.inverted.yellow.menu { + background-color: @yellow; +} +.ui.inverted.yellow.menu .item:before { + background-color: @invertedColoredDividerBackground; +} +.ui.inverted.yellow.menu .active.item { + background-color: @invertedColoredActiveBackground !important; +} + +/* Olive */ +.ui.inverted.menu .olive.active.item, +.ui.inverted.olive.menu { + background-color: @olive; +} +.ui.inverted.olive.menu .item:before { + background-color: @invertedColoredDividerBackground; +} +.ui.inverted.olive.menu .active.item { + background-color: @invertedColoredActiveBackground !important; +} + +/* Green */ +.ui.inverted.menu .green.active.item, +.ui.inverted.green.menu { + background-color: @green; +} +.ui.inverted.green.menu .item:before { + background-color: @invertedColoredDividerBackground; +} +.ui.inverted.green.menu .active.item { + background-color: @invertedColoredActiveBackground !important; +} + +/* Teal */ +.ui.inverted.menu .teal.active.item, +.ui.inverted.teal.menu { + background-color: @teal; +} +.ui.inverted.teal.menu .item:before { + background-color: @invertedColoredDividerBackground; +} +.ui.inverted.teal.menu .active.item { + background-color: @invertedColoredActiveBackground !important; +} + +/* Blue */ +.ui.inverted.menu .blue.active.item, +.ui.inverted.blue.menu { + background-color: @blue; +} +.ui.inverted.blue.menu .item:before { + background-color: @invertedColoredDividerBackground; +} +.ui.inverted.blue.menu .active.item { + background-color: @invertedColoredActiveBackground !important; +} + +/* Violet */ +.ui.inverted.menu .violet.active.item, +.ui.inverted.violet.menu { + background-color: @violet; +} +.ui.inverted.violet.menu .item:before { + background-color: @invertedColoredDividerBackground; +} +.ui.inverted.violet.menu .active.item { + background-color: @invertedColoredActiveBackground !important; +} + +/* Purple */ +.ui.inverted.menu .purple.active.item, +.ui.inverted.purple.menu { + background-color: @purple; +} +.ui.inverted.purple.menu .item:before { + background-color: @invertedColoredDividerBackground; +} +.ui.inverted.purple.menu .active.item { + background-color: @invertedColoredActiveBackground !important; +} + +/* Pink */ +.ui.inverted.menu .pink.active.item, +.ui.inverted.pink.menu { + background-color: @pink; +} +.ui.inverted.pink.menu .item:before { + background-color: @invertedColoredDividerBackground; +} +.ui.inverted.pink.menu .active.item { + background-color: @invertedColoredActiveBackground !important; +} + +/* Brown */ +.ui.inverted.menu .brown.active.item, +.ui.inverted.brown.menu { + background-color: @brown; +} +.ui.inverted.brown.menu .item:before { + background-color: @invertedColoredDividerBackground; +} +.ui.inverted.brown.menu .active.item { + background-color: @invertedColoredActiveBackground !important; +} + +/* Grey */ +.ui.inverted.menu .grey.active.item, +.ui.inverted.grey.menu { + background-color: @grey; +} +.ui.inverted.grey.menu .item:before { + background-color: @invertedColoredDividerBackground; +} +.ui.inverted.grey.menu .active.item { + background-color: @invertedColoredActiveBackground !important; +} + + +/*-------------- + Fitted +---------------*/ + +.ui.fitted.menu .item, +.ui.fitted.menu .item .menu .item, +.ui.menu .fitted.item { + padding: 0em; +} +.ui.horizontally.fitted.menu .item, +.ui.horizontally.fitted.menu .item .menu .item, +.ui.menu .horizontally.fitted.item { + padding-top: @itemVerticalPadding; + padding-bottom: @itemVerticalPadding; +} +.ui.vertically.fitted.menu .item, +.ui.vertically.fitted.menu .item .menu .item, +.ui.menu .vertically.fitted.item { + padding-left: @itemHorizontalPadding; + padding-right: @itemHorizontalPadding; +} + +/*-------------- + Borderless +---------------*/ + +.ui.borderless.menu .item:before, +.ui.borderless.menu .item .menu .item:before, +.ui.menu .borderless.item:before { + background: none !important; +} + +/*------------------- + Compact +--------------------*/ + +.ui.compact.menu { + display: inline-flex; + margin: 0em; + vertical-align: middle; +} +.ui.compact.vertical.menu { + display: inline-block; +} +.ui.compact.menu .item:last-child { + border-radius: 0em @borderRadius @borderRadius 0em; +} +.ui.compact.menu .item:last-child:before { + display: none; +} +.ui.compact.vertical.menu { + width: auto !important; +} +.ui.compact.vertical.menu .item:last-child::before { + display: block; +} + +/*------------------- + Fluid +--------------------*/ + +.ui.menu.fluid, +.ui.vertical.menu.fluid { + width: 100% !important; +} + + +/*------------------- + Evenly Sized +--------------------*/ + +.ui.item.menu, +.ui.item.menu .item { + width: 100%; + padding-left: 0em !important; + padding-right: 0em !important; + margin-left: 0em !important; + margin-right: 0em !important; + text-align: center; + justify-content: center; +} +.ui.attached.item.menu { + margin: 0em @attachedHorizontalOffset !important; +} + +.ui.item.menu .item:last-child:before { + display: none; +} + +.ui.menu.two.item .item { + width: 50%; +} +.ui.menu.three.item .item { + width: 33.333%; +} +.ui.menu.four.item .item { + width: 25%; +} +.ui.menu.five.item .item { + width: 20%; +} +.ui.menu.six.item .item { + width: 16.666%; +} +.ui.menu.seven.item .item { + width: 14.285%; +} +.ui.menu.eight.item .item { + width: 12.500%; +} +.ui.menu.nine.item .item { + width: 11.11%; +} +.ui.menu.ten.item .item { + width: 10.0%; +} +.ui.menu.eleven.item .item { + width: 9.09%; +} +.ui.menu.twelve.item .item { + width: 8.333%; +} + +/*-------------- + Fixed +---------------*/ + +.ui.menu.fixed { + position: fixed; + z-index: 101; + margin: 0em; + width: 100%; +} +.ui.menu.fixed, +.ui.menu.fixed .item:first-child, +.ui.menu.fixed .item:last-child { + border-radius: 0px !important; +} + +.ui.fixed.menu, +.ui[class*="top fixed"].menu { + top: 0px; + left: 0px; + right: auto; + bottom: auto; +} +.ui[class*="top fixed"].menu { + border-top: none; + border-left: none; + border-right: none; +} +.ui[class*="right fixed"].menu { + border-top: none; + border-bottom: none; + border-right: none; + top: 0px; + right: 0px; + left: auto; + bottom: auto; + width: auto; + height: 100%; +} +.ui[class*="bottom fixed"].menu { + border-bottom: none; + border-left: none; + border-right: none; + bottom: 0px; + left: 0px; + top: auto; + right: auto; +} +.ui[class*="left fixed"].menu { + border-top: none; + border-bottom: none; + border-left: none; + top: 0px; + left: 0px; + right: auto; + bottom: auto; + width: auto; + height: 100%; +} + +/* Coupling with Grid */ +.ui.fixed.menu + .ui.grid { + padding-top: @fixedPrecedingGridMargin; +} + + +/*------------------- + Pointing +--------------------*/ + +.ui.pointing.menu .item:after { + visibility: hidden; + position: absolute; + content: ''; + top: 100%; + left: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + background: none; + + margin: (@arrowBorderWidth / 2) 0em 0em; + width: @arrowSize; + height: @arrowSize; + + border: none; + border-bottom: @arrowBorder; + border-right: @arrowBorder; + + z-index: @arrowZIndex; + transition: @arrowTransition; +} +.ui.vertical.pointing.menu .item:after { + position: absolute; + top: 50%; + right: 0%; + bottom: auto; + left: auto; + + transform: translateX(50%) translateY(-50%) rotate(45deg); + margin: 0em -(@arrowBorderWidth / 2) 0em 0em; + + border: none; + border-top: @arrowBorder; + border-right: @arrowBorder; +} + +/* Active */ +.ui.pointing.menu .active.item:after { + visibility: visible; +} +.ui.pointing.menu .active.dropdown.item:after { + visibility: hidden; +} + +/* Don't double up pointers */ +.ui.pointing.menu .dropdown.active.item:after, +.ui.pointing.menu .active.item .menu .active.item:after { + display: none; +} + +/* Colors */ +.ui.pointing.menu .active.item:hover:after { + background-color: @arrowHoverColor; +} +.ui.pointing.menu .active.item:after { + background-color: @arrowActiveColor; +} +.ui.pointing.menu .active.item:hover:after { + background-color: @arrowActiveHoverColor; +} + +.ui.vertical.pointing.menu .active.item:hover:after { + background-color: @arrowVerticalHoverColor; +} +.ui.vertical.pointing.menu .active.item:after { + background-color: @arrowVerticalActiveColor; +} +.ui.vertical.pointing.menu .menu .active.item:after { + background-color: @arrowVerticalSubMenuColor; +} + + + +/*-------------- + Attached +---------------*/ + +/* Middle */ +.ui.attached.menu { + top: 0px; + bottom: 0px; + border-radius: 0px; + margin: 0em @attachedHorizontalOffset; + width: @attachedWidth; + max-width: @attachedWidth; + box-shadow: @attachedBoxShadow; +} +.ui.attached + .ui.attached.menu:not(.top) { + border-top: none; +} + +/* Top */ +.ui[class*="top attached"].menu { + bottom: 0px; + margin-bottom: 0em; + top: @attachedTopOffset; + margin-top: @verticalMargin; + border-radius: @borderRadius @borderRadius 0em 0em; +} +.ui.menu[class*="top attached"]:first-child { + margin-top: 0em; +} + +/* Bottom */ +.ui[class*="bottom attached"].menu { + bottom: 0px; + margin-top: 0em; + top: @attachedBottomOffset; + margin-bottom: @verticalMargin; + box-shadow: @attachedBottomBoxShadow; + border-radius: 0em 0em @borderRadius @borderRadius; +} +.ui[class*="bottom attached"].menu:last-child { + margin-bottom: 0em; +} + +/* Attached Menu Item */ +.ui.top.attached.menu > .item:first-child { + border-radius: @borderRadius 0em 0em 0em; +} +.ui.bottom.attached.menu > .item:first-child { + border-radius: 0em 0em 0em @borderRadius; +} + +/* Tabular Attached */ +.ui.attached.menu:not(.tabular) { + border: @attachedBorder; +} +.ui.attached.inverted.menu { + border: none; +} +.ui.attached.tabular.menu { + margin-left: 0; + margin-right: 0; + width: 100%; +} + +/*-------------- + Sizes +---------------*/ + +/* Mini */ +.ui.mini.menu { + font-size: @mini; +} +.ui.mini.vertical.menu { + width: @miniWidth; +} + +/* Tiny */ +.ui.tiny.menu { + font-size: @tiny; +} +.ui.tiny.vertical.menu { + width: @tinyWidth; +} + +/* Small */ +.ui.small.menu { + font-size: @small; +} +.ui.small.vertical.menu { + width: @smallWidth; +} + +/* Medium */ +.ui.menu { + font-size: @medium; +} +.ui.vertical.menu { + width: @mediumWidth; +} + +/* Large */ +.ui.large.menu { + font-size: @large; +} +.ui.large.vertical.menu { + width: @largeWidth; +} + +/* Huge */ +.ui.huge.menu { + font-size: @huge; +} +.ui.huge.vertical.menu { + width: @hugeWidth; +} + +/* Big */ +.ui.big.menu { + font-size: @big; +} +.ui.big.vertical.menu { + width: @bigWidth; +} + +/* Massive */ +.ui.massive.menu { + font-size: @massive; +} +.ui.massive.vertical.menu { + width: @massiveWidth; +} + +.loadUIOverrides(); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/collections/message.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/collections/message.less new file mode 100644 index 00000000..8712679e --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/collections/message.less @@ -0,0 +1,481 @@ +/*! + * # Semantic UI - Message + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Theme +*******************************/ + +@type : 'collection'; +@element : 'message'; + +@import (multiple) '../../theme.config'; + +/******************************* + Message +*******************************/ + +.ui.message { + position: relative; + min-height: 1em; + margin: @verticalMargin 0em; + background: @background; + padding: @padding; + line-height: @lineHeight; + color: @textColor; + transition: @transition; + border-radius: @borderRadius; + box-shadow: @boxShadow; +} + +.ui.message:first-child { + margin-top: 0em; +} +.ui.message:last-child { + margin-bottom: 0em; +} + + +/*-------------- + Content +---------------*/ + +/* Header */ +.ui.message .header { + display: @headerDisplay; + font-family: @headerFont; + font-weight: @headerFontWeight; + margin: @headerMargin; +} + +/* Default font size */ +.ui.message .header:not(.ui) { + font-size: @headerFontSize; +} + +/* Paragraph */ +.ui.message p { + opacity: @messageTextOpacity; + margin: @messageParagraphMargin 0em; +} +.ui.message p:first-child { + margin-top: 0em; +} +.ui.message p:last-child { + margin-bottom: 0em; +} +.ui.message .header + p { + margin-top: @headerParagraphDistance; +} + +/* List */ +.ui.message .list:not(.ui) { + text-align: left; + padding: 0em; + opacity: @listOpacity; + list-style-position: @listStylePosition; + margin: @listMargin 0em 0em; +} +.ui.message .list:not(.ui):first-child { + margin-top: 0em; +} +.ui.message .list:not(.ui):last-child { + margin-bottom: 0em; +} +.ui.message .list:not(.ui) li { + position: relative; + list-style-type: none; + margin: 0em 0em @listItemMargin @listItemIndent; + padding: 0em; +} +.ui.message .list:not(.ui) li:before { + position: absolute; + content: '•'; + left: -1em; + height: 100%; + vertical-align: baseline; +} +.ui.message .list:not(.ui) li:last-child { + margin-bottom: 0em; +} + + +/* Icon */ +.ui.message > .icon { + margin-right: @iconDistance; +} + +/* Close Icon */ +.ui.message > .close.icon { + cursor: pointer; + position: absolute; + margin: 0em; + top: @closeTopDistance; + right: @closeRightDistance; + opacity: @closeOpacity; + transition: @closeTransition; +} +.ui.message > .close.icon:hover { + opacity: 1; +} + +/* First / Last Element */ +.ui.message > :first-child { + margin-top: 0em; +} +.ui.message > :last-child { + margin-bottom: 0em; +} + +/******************************* + Coupling +*******************************/ + +.ui.dropdown .menu > .message { + margin: 0px -@borderWidth; +} + +/******************************* + States +*******************************/ + +/*-------------- + Visible +---------------*/ + +.ui.visible.visible.visible.visible.message { + display: block; +} + +.ui.icon.visible.visible.visible.visible.message { + display: flex; +} + +/*-------------- + Hidden +---------------*/ + +.ui.hidden.hidden.hidden.hidden.message { + display: none; +} + + +/******************************* + Variations +*******************************/ + +/*-------------- + Compact +---------------*/ + +.ui.compact.message { + display: inline-block; +} +.ui.compact.icon.message { + display: inline-flex; +} + + +/*-------------- + Attached +---------------*/ + +.ui.attached.message { + margin-bottom: @attachedYOffset; + border-radius: @borderRadius @borderRadius 0em 0em; + box-shadow: @attachedBoxShadow; + margin-left: @attachedXOffset; + margin-right: @attachedXOffset; +} +.ui.attached + .ui.attached.message:not(.top):not(.bottom) { + margin-top: @attachedYOffset; + border-radius: 0em; +} +.ui.bottom.attached.message { + margin-top: @attachedYOffset; + border-radius: 0em 0em @borderRadius @borderRadius; + box-shadow: @attachedBottomBoxShadow; +} +.ui.bottom.attached.message:not(:last-child) { + margin-bottom: @verticalMargin; +} +.ui.attached.icon.message { + width: auto; +} + + +/*-------------- + Icon +---------------*/ + +.ui.icon.message { + display: flex; + width: 100%; + align-items: center; +} +.ui.icon.message > .icon:not(.close) { + display: block; + flex: 0 0 auto; + width: auto; + line-height: 1; + vertical-align: @iconVerticalAlign; + font-size: @iconSize; + opacity: @iconOpacity; +} +.ui.icon.message > .content { + display: block; + flex: 1 1 auto; + vertical-align: @iconVerticalAlign; +} + + +.ui.icon.message .icon:not(.close) + .content { + padding-left: @iconContentDistance; +} +.ui.icon.message .circular.icon { + width: 1em; +} + +/*-------------- + Floating +---------------*/ + +.ui.floating.message { + box-shadow: @floatingBoxShadow; +} + + +/*-------------- + Colors +---------------*/ + +.ui.black.message { + background-color: @black; + color: @invertedTextColor; +} + +/*-------------- + Types +---------------*/ + +/* Positive */ +.ui.positive.message { + background-color: @positiveBackgroundColor; + color: @positiveTextColor; +} +.ui.positive.message, +.ui.attached.positive.message { + box-shadow: @positiveBoxShadow; +} +.ui.positive.message .header { + color: @positiveHeaderColor; +} + +/* Negative */ +.ui.negative.message { + background-color: @negativeBackgroundColor; + color: @negativeTextColor; +} +.ui.negative.message, +.ui.attached.negative.message { + box-shadow: @negativeBoxShadow; +} +.ui.negative.message .header { + color: @negativeHeaderColor; +} + +/* Info */ +.ui.info.message { + background-color: @infoBackgroundColor; + color: @infoTextColor; +} +.ui.info.message, +.ui.attached.info.message { + box-shadow: @infoBoxShadow; +} +.ui.info.message .header { + color: @infoHeaderColor; +} + +/* Warning */ +.ui.warning.message { + background-color: @warningBackgroundColor; + color: @warningTextColor; +} +.ui.warning.message, +.ui.attached.warning.message { + box-shadow: @warningBoxShadow; +} +.ui.warning.message .header { + color: @warningHeaderColor; +} + +/* Error */ +.ui.error.message { + background-color: @errorBackgroundColor; + color: @errorTextColor; +} +.ui.error.message, +.ui.attached.error.message { + box-shadow: @errorBoxShadow; +} +.ui.error.message .header { + color: @errorHeaderColor; +} + +/* Success */ +.ui.success.message { + background-color: @successBackgroundColor; + color: @successTextColor; +} +.ui.success.message, +.ui.attached.success.message { + box-shadow: @successBoxShadow; +} +.ui.success.message .header { + color: @successHeaderColor; +} + + +/* Colors */ +.ui.inverted.message, +.ui.black.message { + background-color: @black; + color: @invertedTextColor; +} + +.ui.red.message { + background-color: @redBackground; + color: @redTextColor; + box-shadow: @redBoxShadow; +} +.ui.red.message .header { + color: @redHeaderColor; +} + +.ui.orange.message { + background-color: @orangeBackground; + color: @orangeTextColor; + box-shadow: @orangeBoxShadow; +} +.ui.orange.message .header { + color: @orangeHeaderColor; +} + +.ui.yellow.message { + background-color: @yellowBackground; + color: @yellowTextColor; + box-shadow: @yellowBoxShadow; +} +.ui.yellow.message .header { + color: @yellowHeaderColor; +} + +.ui.olive.message { + background-color: @oliveBackground; + color: @oliveTextColor; + box-shadow: @oliveBoxShadow; +} +.ui.olive.message .header { + color: @oliveHeaderColor; +} + +.ui.green.message { + background-color: @greenBackground; + color: @greenTextColor; + box-shadow: @greenBoxShadow; +} +.ui.green.message .header { + color: @greenHeaderColor; +} + +.ui.teal.message { + background-color: @tealBackground; + color: @tealTextColor; + box-shadow: @tealBoxShadow; +} +.ui.teal.message .header { + color: @tealHeaderColor; +} + +.ui.blue.message { + background-color: @blueBackground; + color: @blueTextColor; + box-shadow: @blueBoxShadow; +} +.ui.blue.message .header { + color: @blueHeaderColor; +} + +.ui.violet.message { + background-color: @violetBackground; + color: @violetTextColor; + box-shadow: @violetBoxShadow; +} +.ui.violet.message .header { + color: @violetHeaderColor; +} + +.ui.purple.message { + background-color: @purpleBackground; + color: @purpleTextColor; + box-shadow: @purpleBoxShadow; +} +.ui.purple.message .header { + color: @purpleHeaderColor; +} + +.ui.pink.message { + background-color: @pinkBackground; + color: @pinkTextColor; + box-shadow: @pinkBoxShadow; +} +.ui.pink.message .header { + color: @pinkHeaderColor; +} + +.ui.brown.message { + background-color: @brownBackground; + color: @brownTextColor; + box-shadow: @brownBoxShadow; +} +.ui.brown.message .header { + color: @brownHeaderColor; +} + +/*-------------- + Sizes +---------------*/ + +.ui.mini.message { + font-size: @relativeMini; +} +.ui.tiny.message { + font-size: @relativeTiny; +} +.ui.small.message { + font-size: @relativeSmall; +} +.ui.message { + font-size: @relativeMedium; +} +.ui.large.message { + font-size: @relativeLarge; +} +.ui.big.message { + font-size: @relativeBig; +} +.ui.huge.message { + font-size: @relativeHuge; +} +.ui.massive.message { + font-size: @relativeMassive; +} + +.loadUIOverrides(); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/collections/table.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/collections/table.less new file mode 100644 index 00000000..240e830b --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/collections/table.less @@ -0,0 +1,1119 @@ +/*! + * # Semantic UI - Table + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + + +/******************************* + Theme +*******************************/ + +@type : 'collection'; +@element : 'table'; + +@import (multiple) '../../theme.config'; + +/******************************* + Table +*******************************/ + +/* Prototype */ +.ui.table { + width: 100%; + background: @background; + margin: @margin; + border: @border; + box-shadow: @boxShadow; + border-radius: @borderRadius; + text-align: @textAlign; + color: @color; + border-collapse: @borderCollapse; + border-spacing: @borderSpacing; +} + +.ui.table:first-child { + margin-top: 0em; +} +.ui.table:last-child { + margin-bottom: 0em; +} + +/******************************* + Parts +*******************************/ + +/* Table Content */ +.ui.table th, +.ui.table td { + transition: @transition; +} + +/* Headers */ +.ui.table thead { + box-shadow: @headerBoxShadow; +} +.ui.table thead th { + cursor: auto; + background: @headerBackground; + text-align: @headerAlign; + color: @headerColor; + padding: @headerVerticalPadding @headerHorizontalPadding; + vertical-align: @headerVerticalAlign; + font-style: @headerFontStyle; + font-weight: @headerFontWeight; + text-transform: @headerTextTransform; + border-bottom: @headerBorder; + border-left: @headerDivider; +} + +.ui.table thead tr > th:first-child { + border-left: none; +} + +.ui.table thead tr:first-child > th:first-child { + border-radius: @borderRadius 0em 0em 0em; +} +.ui.table thead tr:first-child > th:last-child { + border-radius: 0em @borderRadius 0em 0em; +} +.ui.table thead tr:first-child > th:only-child { + border-radius: @borderRadius @borderRadius 0em 0em; +} + +/* Footer */ +.ui.table tfoot { + box-shadow: @footerBoxShadow; +} +.ui.table tfoot th { + cursor: auto; + border-top: @footerBorder; + background: @footerBackground; + text-align: @footerAlign; + color: @footerColor; + padding: @footerVerticalPadding @footerHorizontalPadding; + vertical-align: @footerVerticalAlign; + font-style: @footerFontStyle; + font-weight: @footerFontWeight; + text-transform: @footerTextTransform; +} +.ui.table tfoot tr > th:first-child { + border-left: none; +} +.ui.table tfoot tr:first-child > th:first-child { + border-radius: 0em 0em 0em @borderRadius; +} +.ui.table tfoot tr:first-child > th:last-child { + border-radius: 0em 0em @borderRadius 0em; +} +.ui.table tfoot tr:first-child > th:only-child { + border-radius: 0em 0em @borderRadius @borderRadius; +} + +/* Table Row */ +.ui.table tr td { + border-top: @rowBorder; +} +.ui.table tr:first-child td { + border-top: none; +} + +/* Repeated tbody */ +.ui.table tbody + tbody tr:first-child td { + border-top: @rowBorder; +} + +/* Table Cells */ +.ui.table td { + padding: @cellVerticalPadding @cellHorizontalPadding; + text-align: @cellTextAlign; +} + +/* Icons */ +.ui.table > .icon { + vertical-align: @iconVerticalAlign; +} +.ui.table > .icon:only-child { + margin: 0em; +} + +/* Table Segment */ +.ui.table.segment { + padding: 0em; +} +.ui.table.segment:after { + display: none; +} +.ui.table.segment.stacked:after { + display: block; +} + + +/* Responsive */ +@media only screen and (max-width : @largestMobileScreen) { + .ui.table:not(.unstackable) { + width: 100%; + } + .ui.table:not(.unstackable) tbody, + .ui.table:not(.unstackable) tr, + .ui.table:not(.unstackable) tr > th, + .ui.table:not(.unstackable) tr > td { + display: block !important; + width: auto !important; + display: block !important; + } + + .ui.table:not(.unstackable) { + padding: 0em; + } + .ui.table:not(.unstackable) thead { + display: @responsiveHeaderDisplay; + } + .ui.table:not(.unstackable) tfoot { + display: @responsiveFooterDisplay; + } + .ui.table:not(.unstackable) tr { + padding-top: @responsiveRowVerticalPadding; + padding-bottom: @responsiveRowVerticalPadding; + box-shadow: @responsiveRowBoxShadow; + } + + .ui.table:not(.unstackable) tr > th, + .ui.table:not(.unstackable) tr > td { + background: none; + border: none !important; + padding: @responsiveCellVerticalPadding @responsiveCellHorizontalPadding !important; + box-shadow: @responsiveCellBoxShadow; + } + .ui.table:not(.unstackable) th:first-child, + .ui.table:not(.unstackable) td:first-child { + font-weight: @responsiveCellHeaderFontWeight; + } + + /* Definition Table */ + .ui.definition.table:not(.unstackable) thead th:first-child { + box-shadow: none !important; + } +} + + +/******************************* + Coupling +*******************************/ + +/* UI Image */ +.ui.table th .image, +.ui.table th .image img, +.ui.table td .image, +.ui.table td .image img { + max-width: none; +} + + +/******************************* + Types +*******************************/ + +/*-------------- + Complex +---------------*/ + +.ui.structured.table { + border-collapse: collapse; +} +.ui.structured.table thead th { + border-left: @headerDivider; + border-right: @headerDivider; +} +.ui.structured.sortable.table thead th { + border-left: @sortableBorder; + border-right: @sortableBorder; +} +.ui.structured.basic.table th { + border-left: @basicTableHeaderDivider; + border-right: @basicTableHeaderDivider; +} +.ui.structured.celled.table tr th, +.ui.structured.celled.table tr td { + border-left: @cellBorder; + border-right: @cellBorder; +} + +/*-------------- + Definition +---------------*/ + +.ui.definition.table thead:not(.full-width) th:first-child { + pointer-events: none; + background: @definitionHeaderBackground; + font-weight: @definitionHeaderFontWeight; + color: @definitionHeaderColor; + box-shadow: -@borderWidth -@borderWidth 0px @borderWidth @definitionPageBackground; +} + +.ui.definition.table tfoot:not(.full-width) th:first-child { + pointer-events: none; + background: @definitionFooterBackground; + font-weight: @definitionFooterColor; + color: @definitionFooterFontWeight; + box-shadow: @borderWidth @borderWidth 0px @borderWidth @definitionPageBackground; +} + +/* Remove Border */ +.ui.celled.definition.table thead:not(.full-width) th:first-child { + box-shadow: 0px -@borderWidth 0px @borderWidth @definitionPageBackground; +} +.ui.celled.definition.table tfoot:not(.full-width) th:first-child { + box-shadow: 0px @borderWidth 0px @borderWidth @definitionPageBackground; +} + +/* Highlight Defining Column */ +.ui.definition.table tr td:first-child:not(.ignored), +.ui.definition.table tr td.definition { + background: @definitionColumnBackground; + font-weight: @definitionColumnFontWeight; + color: @definitionColumnColor; + text-transform: @definitionColumnTextTransform; + box-shadow: @definitionColumnBoxShadow; + text-align: @definitionColumnTextAlign; + font-size: @definitionColumnFontSize; + padding-left: @definitionColumnHorizontalPadding; + padding-right: @definitionColumnHorizontalPadding; +} + + +/* Fix 2nd Column */ +.ui.definition.table thead:not(.full-width) th:nth-child(2) { + border-left: @borderWidth solid @borderColor; +} +.ui.definition.table tfoot:not(.full-width) th:nth-child(2) { + border-left: @borderWidth solid @borderColor; +} +.ui.definition.table td:nth-child(2) { + border-left: @borderWidth solid @borderColor; +} + + +/******************************* + States +*******************************/ + +/*-------------- + Positive +---------------*/ + +.ui.table tr.positive, +.ui.table td.positive { + box-shadow: @positiveBoxShadow; +} +.ui.table tr.positive, +.ui.table td.positive { + background: @positiveBackgroundColor !important; + color: @positiveColor !important; +} + +/*-------------- + Negative +---------------*/ + +.ui.table tr.negative, +.ui.table td.negative { + box-shadow: @negativeBoxShadow; +} +.ui.table tr.negative, +.ui.table td.negative { + background: @negativeBackgroundColor !important; + color: @negativeColor !important; +} + +/*-------------- + Error +---------------*/ + +.ui.table tr.error, +.ui.table td.error { + box-shadow: @errorBoxShadow; +} +.ui.table tr.error, +.ui.table td.error { + background: @errorBackgroundColor !important; + color: @errorColor !important; +} +/*-------------- + Warning +---------------*/ + +.ui.table tr.warning, +.ui.table td.warning { + box-shadow: @warningBoxShadow; +} +.ui.table tr.warning, +.ui.table td.warning { + background: @warningBackgroundColor !important; + color: @warningColor !important; +} + +/*-------------- + Active +---------------*/ + +.ui.table tr.active, +.ui.table td.active { + box-shadow: @activeBoxShadow; +} +.ui.table tr.active, +.ui.table td.active { + background: @activeBackgroundColor !important; + color: @activeColor !important; +} + + + +/*-------------- + Disabled +---------------*/ + +.ui.table tr.disabled td, +.ui.table tr td.disabled, +.ui.table tr.disabled:hover, +.ui.table tr:hover td.disabled { + pointer-events: none; + color: @disabledTextColor; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Stackable +---------------*/ + +@media only screen and (max-width : @largestTabletScreen) { + + .ui[class*="tablet stackable"].table, + .ui[class*="tablet stackable"].table tbody, + .ui[class*="tablet stackable"].table tr, + .ui[class*="tablet stackable"].table tr > th, + .ui[class*="tablet stackable"].table tr > td { + display: block !important; + width: 100% !important; + display: block !important; + } + + .ui[class*="tablet stackable"].table { + padding: 0em; + } + .ui[class*="tablet stackable"].table thead { + display: @responsiveHeaderDisplay; + } + .ui[class*="tablet stackable"].table tfoot { + display: @responsiveFooterDisplay; + } + .ui[class*="tablet stackable"].table tr { + padding-top: @responsiveRowVerticalPadding; + padding-bottom: @responsiveRowVerticalPadding; + box-shadow: @responsiveRowBoxShadow; + } + .ui[class*="tablet stackable"].table tr > th, + .ui[class*="tablet stackable"].table tr > td { + background: none; + border: none !important; + padding: @responsiveCellVerticalPadding @responsiveCellHorizontalPadding; + box-shadow: @responsiveCellBoxShadow; + } + + /* Definition Table */ + .ui.definition[class*="tablet stackable"].table thead th:first-child { + box-shadow: none !important; + } +} + +/*-------------- + Text Alignment +---------------*/ + +.ui.table[class*="left aligned"], +.ui.table [class*="left aligned"] { + text-align: left; +} +.ui.table[class*="center aligned"], +.ui.table [class*="center aligned"] { + text-align: center; +} +.ui.table[class*="right aligned"], +.ui.table [class*="right aligned"] { + text-align: right; +} + +/*------------------ + Vertical Alignment +------------------*/ + +.ui.table[class*="top aligned"], +.ui.table [class*="top aligned"] { + vertical-align: top; +} +.ui.table[class*="middle aligned"], +.ui.table [class*="middle aligned"] { + vertical-align: middle; +} +.ui.table[class*="bottom aligned"], +.ui.table [class*="bottom aligned"] { + vertical-align: bottom; +} + +/*-------------- + Collapsing +---------------*/ + +.ui.table th.collapsing, +.ui.table td.collapsing { + width: 1px; + white-space: nowrap; +} + +/*-------------- + Fixed +---------------*/ + +.ui.fixed.table { + table-layout: fixed; +} + +.ui.fixed.table th, +.ui.fixed.table td { + overflow: hidden; + text-overflow: ellipsis; +} + + +/*-------------- + Selectable +---------------*/ + +.ui.selectable.table tbody tr:hover, +.ui.table tbody tr td.selectable:hover { + background: @selectableBackground !important; + color: @selectableTextColor !important; +} +.ui.selectable.inverted.table tbody tr:hover, +.ui.inverted.table tbody tr td.selectable:hover { + background: @selectableInvertedBackground !important; + color: @selectableInvertedTextColor !important; +} + +/* Selectable Cell Link */ +.ui.table tbody tr td.selectable { + padding: 0em; +} +.ui.table tbody tr td.selectable > a:not(.ui) { + display: block; + color: inherit; + padding: @cellVerticalPadding @cellHorizontalPadding; +} + +/* Other States */ +.ui.selectable.table tr.error:hover, +.ui.table tr td.selectable.error:hover, +.ui.selectable.table tr:hover td.error { + background: @errorBackgroundHover !important; + color: @errorColorHover !important; +} +.ui.selectable.table tr.warning:hover, +.ui.table tr td.selectable.warning:hover, +.ui.selectable.table tr:hover td.warning { + background: @warningBackgroundHover !important; + color: @warningColorHover !important; +} +.ui.selectable.table tr.active:hover, +.ui.table tr td.selectable.active:hover, +.ui.selectable.table tr:hover td.active { + background: @activeBackgroundColor !important; + color: @activeColor !important; +} +.ui.selectable.table tr.positive:hover, +.ui.table tr td.selectable.positive:hover, +.ui.selectable.table tr:hover td.positive { + background: @positiveBackgroundHover !important; + color: @positiveColorHover !important; +} +.ui.selectable.table tr.negative:hover, +.ui.table tr td.selectable.negative:hover, +.ui.selectable.table tr:hover td.negative { + background: @negativeBackgroundHover !important; + color: @negativeColorHover !important; +} + + + +/*------------------- + Attached +--------------------*/ + +/* Middle */ +.ui.attached.table { + top: 0px; + bottom: 0px; + border-radius: 0px; + margin: 0em @attachedHorizontalOffset; + width: @attachedWidth; + max-width: @attachedWidth; + box-shadow: @attachedBoxShadow; + border: @attachedBorder; +} +.ui.attached + .ui.attached.table:not(.top) { + border-top: none; +} + +/* Top */ +.ui[class*="top attached"].table { + bottom: 0px; + margin-bottom: 0em; + top: @attachedTopOffset; + margin-top: @verticalMargin; + border-radius: @borderRadius @borderRadius 0em 0em; +} +.ui.table[class*="top attached"]:first-child { + margin-top: 0em; +} + +/* Bottom */ +.ui[class*="bottom attached"].table { + bottom: 0px; + margin-top: 0em; + top: @attachedBottomOffset; + margin-bottom: @verticalMargin; + box-shadow: @attachedBottomBoxShadow; + border-radius: 0em 0em @borderRadius @borderRadius; +} +.ui[class*="bottom attached"].table:last-child { + margin-bottom: 0em; +} + +/*-------------- + Striped +---------------*/ + +/* Table Striping */ +.ui.striped.table > tr:nth-child(2n), +.ui.striped.table tbody tr:nth-child(2n) { + background-color: @stripedBackground; +} + +/* Stripes */ +.ui.inverted.striped.table > tr:nth-child(2n), +.ui.inverted.striped.table tbody tr:nth-child(2n) { + background-color: @invertedStripedBackground; +} + +/* Allow striped active hover */ +.ui.striped.selectable.selectable.selectable.table tbody tr.active:hover { + background: @activeBackgroundHover !important; + color: @activeColorHover !important; +} + +/*-------------- + Single Line +---------------*/ + +.ui.table[class*="single line"], +.ui.table [class*="single line"] { + white-space: nowrap; +} +.ui.table[class*="single line"], +.ui.table [class*="single line"] { + white-space: nowrap; +} + +/*------------------- + Colors +--------------------*/ + +/* Red */ +.ui.red.table { + border-top: @coloredBorderSize solid @red; +} +.ui.inverted.red.table { + background-color: @red !important; + color: @white !important; +} + +/* Orange */ +.ui.orange.table { + border-top: @coloredBorderSize solid @orange; +} +.ui.inverted.orange.table { + background-color: @orange !important; + color: @white !important; +} + +/* Yellow */ +.ui.yellow.table { + border-top: @coloredBorderSize solid @yellow; +} +.ui.inverted.yellow.table { + background-color: @yellow !important; + color: @white !important; +} + +/* Olive */ +.ui.olive.table { + border-top: @coloredBorderSize solid @olive; +} +.ui.inverted.olive.table { + background-color: @olive !important; + color: @white !important; +} + +/* Green */ +.ui.green.table { + border-top: @coloredBorderSize solid @green; +} +.ui.inverted.green.table { + background-color: @green !important; + color: @white !important; +} + +/* Teal */ +.ui.teal.table { + border-top: @coloredBorderSize solid @teal; +} +.ui.inverted.teal.table { + background-color: @teal !important; + color: @white !important; +} + +/* Blue */ +.ui.blue.table { + border-top: @coloredBorderSize solid @blue; +} +.ui.inverted.blue.table { + background-color: @blue !important; + color: @white !important; +} + +/* Violet */ +.ui.violet.table { + border-top: @coloredBorderSize solid @violet; +} +.ui.inverted.violet.table { + background-color: @violet !important; + color: @white !important; +} + +/* Purple */ +.ui.purple.table { + border-top: @coloredBorderSize solid @purple; +} +.ui.inverted.purple.table { + background-color: @purple !important; + color: @white !important; +} + +/* Pink */ +.ui.pink.table { + border-top: @coloredBorderSize solid @pink; +} +.ui.inverted.pink.table { + background-color: @pink !important; + color: @white !important; +} + +/* Brown */ +.ui.brown.table { + border-top: @coloredBorderSize solid @brown; +} +.ui.inverted.brown.table { + background-color: @brown !important; + color: @white !important; +} + +/* Grey */ +.ui.grey.table { + border-top: @coloredBorderSize solid @grey; +} +.ui.inverted.grey.table { + background-color: @grey !important; + color: @white !important; +} + +/* Black */ +.ui.black.table { + border-top: @coloredBorderSize solid @black; +} +.ui.inverted.black.table { + background-color: @black !important; + color: @white !important; +} + + +/*-------------- + Column Count +---------------*/ + +/* Grid Based */ +.ui.one.column.table td { + width: @oneColumn; +} +.ui.two.column.table td { + width: @twoColumn; +} +.ui.three.column.table td { + width: @threeColumn; +} +.ui.four.column.table td { + width: @fourColumn; +} +.ui.five.column.table td { + width: @fiveColumn; +} +.ui.six.column.table td { + width: @sixColumn; +} +.ui.seven.column.table td { + width: @sevenColumn; +} +.ui.eight.column.table td { + width: @eightColumn; +} +.ui.nine.column.table td { + width: @nineColumn; +} +.ui.ten.column.table td { + width: @tenColumn; +} +.ui.eleven.column.table td { + width: @elevenColumn; +} +.ui.twelve.column.table td { + width: @twelveColumn; +} +.ui.thirteen.column.table td { + width: @thirteenColumn; +} +.ui.fourteen.column.table td { + width: @fourteenColumn; +} +.ui.fifteen.column.table td { + width: @fifteenColumn; +} +.ui.sixteen.column.table td { + width: @sixteenColumn; +} + +/* Column Width */ +.ui.table th.one.wide, +.ui.table td.one.wide { + width: @oneWide; +} +.ui.table th.two.wide, +.ui.table td.two.wide { + width: @twoWide; +} +.ui.table th.three.wide, +.ui.table td.three.wide { + width: @threeWide; +} +.ui.table th.four.wide, +.ui.table td.four.wide { + width: @fourWide; +} +.ui.table th.five.wide, +.ui.table td.five.wide { + width: @fiveWide; +} +.ui.table th.six.wide, +.ui.table td.six.wide { + width: @sixWide; +} +.ui.table th.seven.wide, +.ui.table td.seven.wide { + width: @sevenWide; +} +.ui.table th.eight.wide, +.ui.table td.eight.wide { + width: @eightWide; +} +.ui.table th.nine.wide, +.ui.table td.nine.wide { + width: @nineWide; +} +.ui.table th.ten.wide, +.ui.table td.ten.wide { + width: @tenWide; +} +.ui.table th.eleven.wide, +.ui.table td.eleven.wide { + width: @elevenWide; +} +.ui.table th.twelve.wide, +.ui.table td.twelve.wide { + width: @twelveWide; +} +.ui.table th.thirteen.wide, +.ui.table td.thirteen.wide { + width: @thirteenWide; +} +.ui.table th.fourteen.wide, +.ui.table td.fourteen.wide { + width: @fourteenWide; +} +.ui.table th.fifteen.wide, +.ui.table td.fifteen.wide { + width: @fifteenWide; +} +.ui.table th.sixteen.wide, +.ui.table td.sixteen.wide { + width: @sixteenWide; +} + +/*-------------- + Sortable +---------------*/ + +.ui.sortable.table thead th { + cursor: pointer; + white-space: nowrap; + border-left: @sortableBorder; + color: @sortableColor; +} +.ui.sortable.table thead th:first-child { + border-left: none; +} +.ui.sortable.table thead th.sorted, +.ui.sortable.table thead th.sorted:hover { + user-select: none; +} + +.ui.sortable.table thead th:after { + display: none; + font-style: normal; + font-weight: @normal; + text-decoration: inherit; + content: ''; + height: 1em; + width: @sortableIconWidth; + opacity: @sortableIconOpacity; + margin: 0em 0em 0em @sortableIconDistance; + font-family: @sortableIconFont; +} +.ui.sortable.table thead th.ascending:after { + content: @sortableIconAscending; +} +.ui.sortable.table thead th.descending:after { + content: @sortableIconDescending; +} + +/* Hover */ +.ui.sortable.table th.disabled:hover { + cursor: auto; + color: @sortableDisabledColor; +} +.ui.sortable.table thead th:hover { + background: @sortableHoverBackground; + color: @sortableHoverColor; +} + +/* Sorted */ +.ui.sortable.table thead th.sorted { + background: @sortableActiveBackground; + color: @sortableActiveColor; +} +.ui.sortable.table thead th.sorted:after { + display: inline-block; +} + +/* Sorted Hover */ +.ui.sortable.table thead th.sorted:hover { + background: @sortableActiveHoverBackground; + color: @sortableActiveHoverColor; +} + +/* Inverted */ +.ui.inverted.sortable.table thead th.sorted { + background: @sortableInvertedActiveBackground; + color: @sortableInvertedActiveColor; +} +.ui.inverted.sortable.table thead th:hover { + background: @sortableInvertedHoverBackground; + color: @sortableInvertedHoverColor; +} +.ui.inverted.sortable.table thead th { + border-left-color: @sortableInvertedBorderColor; + border-right-color: @sortableInvertedBorderColor; +} + + +/*-------------- + Inverted +---------------*/ + +/* Text Color */ +.ui.inverted.table { + background: @invertedBackground; + color: @invertedCellColor; + border: @invertedBorder; +} +.ui.inverted.table th { + background-color: @invertedHeaderBackground; + border-color: @invertedHeaderBorderColor !important; + color: @invertedHeaderColor !important; +} +.ui.inverted.table tr td { + border-color: @invertedCellBorderColor !important; +} + +.ui.inverted.table tr.disabled td, +.ui.inverted.table tr td.disabled, +.ui.inverted.table tr.disabled:hover td, +.ui.inverted.table tr:hover td.disabled { + pointer-events: none; + color: @invertedDisabledTextColor; +} + +/* Definition */ +.ui.inverted.definition.table tfoot:not(.full-width) th:first-child, +.ui.inverted.definition.table thead:not(.full-width) th:first-child { + background: @definitionPageBackground; +} +.ui.inverted.definition.table tr td:first-child { + background: @invertedDefinitionColumnBackground; + color: @invertedDefinitionColumnColor; +} + +/*-------------- + Collapsing +---------------*/ + +.ui.collapsing.table { + width: auto; +} + +/*-------------- + Basic +---------------*/ + +.ui.basic.table { + background: @basicTableBackground; + border: @basicTableBorder; + box-shadow: @basicBoxShadow; +} +.ui.basic.table thead, +.ui.basic.table tfoot { + box-shadow: none; +} +.ui.basic.table th { + background: @basicTableHeaderBackground; + border-left: @basicTableHeaderDivider; +} +.ui.basic.table tbody tr { + border-bottom: @basicTableCellBorder; +} +.ui.basic.table td { + background: @basicTableCellBackground; +} +.ui.basic.striped.table tbody tr:nth-child(2n) { + background-color: @basicTableStripedBackground !important; +} + +/* Very Basic */ +.ui[class*="very basic"].table { + border: none; +} +.ui[class*="very basic"].table:not(.sortable):not(.striped) th, +.ui[class*="very basic"].table:not(.sortable):not(.striped) td { + padding: @basicTableCellPadding; +} +.ui[class*="very basic"].table:not(.sortable):not(.striped) th:first-child, +.ui[class*="very basic"].table:not(.sortable):not(.striped) td:first-child { + padding-left: 0em; +} +.ui[class*="very basic"].table:not(.sortable):not(.striped) th:last-child, +.ui[class*="very basic"].table:not(.sortable):not(.striped) td:last-child { + padding-right: 0em; +} +.ui[class*="very basic"].table:not(.sortable):not(.striped) thead tr:first-child th { + padding-top: 0em; +} + +/*-------------- + Celled +---------------*/ + +.ui.celled.table tr th, +.ui.celled.table tr td { + border-left: @cellBorder; +} +.ui.celled.table tr th:first-child, +.ui.celled.table tr td:first-child { + border-left: none; +} + +/*-------------- + Padded +---------------*/ + +.ui.padded.table th { + padding-left: @paddedHorizontalPadding; + padding-right: @paddedHorizontalPadding; +} +.ui.padded.table th, +.ui.padded.table td { + padding: @paddedVerticalPadding @paddedHorizontalPadding; +} + +/* Very */ +.ui[class*="very padded"].table th { + padding-left: @veryPaddedHorizontalPadding; + padding-right: @veryPaddedHorizontalPadding; +} +.ui[class*="very padded"].table td { + padding: @veryPaddedVerticalPadding @veryPaddedHorizontalPadding; +} + +/*-------------- + Compact +---------------*/ + +.ui.compact.table th { + padding-left: @compactHorizontalPadding; + padding-right: @compactHorizontalPadding; +} +.ui.compact.table td { + padding: @compactVerticalPadding @compactHorizontalPadding; +} + +/* Very */ +.ui[class*="very compact"].table th { + padding-left: @veryCompactHorizontalPadding; + padding-right: @veryCompactHorizontalPadding; +} +.ui[class*="very compact"].table td { + padding: @veryCompactVerticalPadding @veryCompactHorizontalPadding; +} + +/*-------------- + Sizes +---------------*/ + +/* Small */ +.ui.small.table { + font-size: @small; +} + +/* Standard */ +.ui.table { + font-size: @medium; +} + +/* Large */ +.ui.large.table { + font-size: @large; +} + +.loadUIOverrides(); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/button.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/button.less new file mode 100644 index 00000000..35a130d7 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/button.less @@ -0,0 +1,3578 @@ +/*! + * # Semantic UI - Button + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Theme +*******************************/ + +@type : 'element'; +@element : 'button'; + +@import (multiple) '../../theme.config'; + +/******************************* + Button +*******************************/ + +.ui.button { + cursor: pointer; + display: inline-block; + + min-height: 1em; + + outline: none; + border: none; + vertical-align: @verticalAlign; + background: @background; + color: @textColor; + + font-family: @fontFamily; + + margin: 0em @horizontalMargin @verticalMargin 0em; + padding: @verticalPadding @horizontalPadding (@verticalPadding + @shadowOffset); + + text-transform: @textTransform; + text-shadow: @textShadow; + font-weight: @fontWeight; + line-height: @lineHeight; + font-style: normal; + text-align: center; + text-decoration: none; + + border-radius: @borderRadius; + box-shadow: @boxShadow; + + user-select: none; + transition: @transition; + will-change: @willChange; + + -webkit-tap-highlight-color: @tapColor; +} + + +/******************************* + States +*******************************/ + +/*-------------- + Hover +---------------*/ + +.ui.button:hover { + background-color: @hoverBackgroundColor; + background-image: @hoverBackgroundImage; + box-shadow: @hoverBoxShadow; + color: @hoverColor; +} + +.ui.button:hover .icon { + opacity: @iconHoverOpacity; +} + +/*-------------- + Focus +---------------*/ + +.ui.button:focus { + background-color: @focusBackgroundColor; + color: @focusColor; + background-image: @focusBackgroundImage !important; + box-shadow: @focusBoxShadow !important; +} + +.ui.button:focus .icon { + opacity: @iconFocusOpacity; +} + +/*-------------- + Down +---------------*/ + +.ui.button:active, +.ui.active.button:active { + background-color: @downBackgroundColor; + background-image: @downBackgroundImage; + color: @downColor; + box-shadow: @downBoxShadow; +} + +/*-------------- + Active +---------------*/ + +.ui.active.button { + background-color: @activeBackgroundColor; + background-image: @activeBackgroundImage; + box-shadow: @activeBoxShadow; + color: @activeColor; +} +.ui.active.button:hover { + background-color: @activeHoverBackgroundColor; + background-image: @activeHoverBackgroundImage; + color: @activeHoverColor; +} +.ui.active.button:active { + background-color: @activeBackgroundColor; + background-image: @activeBackgroundImage; +} + + +/*-------------- + Loading +---------------*/ + +/* Specificity hack */ +.ui.loading.loading.loading.loading.loading.loading.button { + position: relative; + cursor: default; + text-shadow: none !important; + color: transparent !important; + opacity: @loadingOpacity; + pointer-events: @loadingPointerEvents; + transition: @loadingTransition; +} +.ui.loading.button:before { + position: absolute; + content: ''; + top: 50%; + left: 50%; + + margin: @loaderMargin; + width: @loaderSize; + height: @loaderSize; + + border-radius: @circularRadius; + border: @loaderLineWidth solid @invertedLoaderFillColor; +} +.ui.loading.button:after { + position: absolute; + content: ''; + top: 50%; + left: 50%; + + margin: @loaderMargin; + width: @loaderSize; + height: @loaderSize; + + animation: button-spin @loaderSpeed linear; + animation-iteration-count: infinite; + + border-radius: @circularRadius; + + border-color: @invertedLoaderLineColor transparent transparent; + border-style: solid; + border-width: @loaderLineWidth; + + box-shadow: 0px 0px 0px 1px transparent; +} +.ui.labeled.icon.loading.button .icon { + background-color: transparent; + box-shadow: none; +} + +@keyframes button-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +.ui.basic.loading.button:not(.inverted):before { + border-color: @loaderFillColor; +} +.ui.basic.loading.button:not(.inverted):after { + border-top-color: @loaderLineColor; +} + +/*------------------- + Disabled +--------------------*/ + +.ui.buttons .disabled.button, +.ui.disabled.button, +.ui.button:disabled, +.ui.disabled.button:hover, +.ui.disabled.active.button { + cursor: default; + opacity: @disabledOpacity !important; + background-image: none !important; + box-shadow: none !important; + pointer-events: none !important; +} + +/* Basic Group With Disabled */ +.ui.basic.buttons .ui.disabled.button { + border-color: @disabledBorderColor; +} + +/******************************* + Types +*******************************/ + +/*------------------- + Animated +--------------------*/ + +.ui.animated.button { + position: relative; + overflow: hidden; + padding-right: 0em !important; + vertical-align: @animatedVerticalAlign; + z-index: @animatedZIndex; +} + +.ui.animated.button .content { + will-change: transform, opacity; +} +.ui.animated.button .visible.content { + position: relative; + margin-right: @horizontalPadding; +} +.ui.animated.button .hidden.content { + position: absolute; + width: 100%; +} + +/* Horizontal */ +.ui.animated.button .visible.content, +.ui.animated.button .hidden.content { + transition: right @animationDuration @animationEasing 0s; +} +.ui.animated.button .visible.content { + left: auto; + right: 0%; +} +.ui.animated.button .hidden.content { + top: 50%; + left: auto; + right: -100%; + margin-top: -(@lineHeight / 2); +} +.ui.animated.button:focus .visible.content, +.ui.animated.button:hover .visible.content { + left: auto; + right: 200%; +} +.ui.animated.button:focus .hidden.content, +.ui.animated.button:hover .hidden.content { + left: auto; + right: 0%; +} + +/* Vertical */ +.ui.vertical.animated.button .visible.content, +.ui.vertical.animated.button .hidden.content { + transition: top @animationDuration @animationEasing, transform @animationDuration @animationEasing; +} +.ui.vertical.animated.button .visible.content { + transform: translateY(0%); + right: auto; +} +.ui.vertical.animated.button .hidden.content { + top: -50%; + left: 0%; + right: auto; +} +.ui.vertical.animated.button:focus .visible.content, +.ui.vertical.animated.button:hover .visible.content { + transform: translateY(200%); + right: auto; +} +.ui.vertical.animated.button:focus .hidden.content, +.ui.vertical.animated.button:hover .hidden.content { + top: 50%; + right: auto; +} + +/* Fade */ +.ui.fade.animated.button .visible.content, +.ui.fade.animated.button .hidden.content { + transition: opacity @animationDuration @animationEasing, transform @animationDuration @animationEasing; +} +.ui.fade.animated.button .visible.content { + left: auto; + right: auto; + opacity: 1; + transform: scale(1); +} +.ui.fade.animated.button .hidden.content { + opacity: 0; + left: 0%; + right: auto; + transform: scale(@fadeScaleHigh); +} +.ui.fade.animated.button:focus .visible.content, +.ui.fade.animated.button:hover .visible.content { + left: auto; + right: auto; + opacity: 0; + transform: scale(@fadeScaleLow); +} +.ui.fade.animated.button:focus .hidden.content, +.ui.fade.animated.button:hover .hidden.content { + left: 0%; + right: auto; + opacity: 1; + transform: scale(1); +} + +/*------------------- + Inverted +--------------------*/ + +.ui.inverted.button { + box-shadow: 0px 0px 0px @invertedBorderSize @white inset !important; + background: transparent none; + color: @white; + text-shadow: none !important; +} + +/* Group */ +.ui.inverted.buttons .button { + margin: @invertedGroupButtonOffset; +} +.ui.inverted.buttons .button:first-child { + margin-left: 0em; +} +.ui.inverted.vertical.buttons .button { + margin: @invertedVerticalGroupButtonOffset; +} +.ui.inverted.vertical.buttons .button:first-child { + margin-top: 0em; +} + +/* States */ + +/* Hover */ +.ui.inverted.button:hover { + background: @white; + box-shadow: 0px 0px 0px @invertedBorderSize @white inset !important; + color: @hoverColor; +} + +/* Active / Focus */ +.ui.inverted.button:focus, +.ui.inverted.button.active { + background: @white; + box-shadow: 0px 0px 0px @invertedBorderSize @white inset !important; + color: @focusColor; +} + +/* Active Focus */ +.ui.inverted.button.active:focus { + background: @midWhite; + box-shadow: 0px 0px 0px @invertedBorderSize @midWhite inset !important; + color: @focusColor; +} + + +/*------------------- + Labeled Button +--------------------*/ + +.ui.labeled.button:not(.icon) { + display: inline-flex; + flex-direction: row; + background: none !important; + padding: 0px !important; + border: none !important; + box-shadow: none !important; +} + +.ui.labeled.button > .button { + margin: 0px; +} +.ui.labeled.button > .label { + display: flex; + align-items: @labeledLabelAlign; + margin: 0px 0px 0px @labeledLabelBorderOffset !important; + font-size: @labeledLabelFontSize; + padding: @labeledLabelPadding; + font-size: @labeledLabelFontSize; + border-color: @labeledLabelBorderColor; +} + +/* Tag */ +.ui.labeled.button > .tag.label:before { + width: @labeledTagLabelSize; + height: @labeledTagLabelSize; +} + +/* Right */ +.ui.labeled.button:not([class*="left labeled"]) > .button { + border-top-right-radius: 0px; + border-bottom-right-radius: 0px; +} +.ui.labeled.button:not([class*="left labeled"]) > .label { + border-top-left-radius: 0px; + border-bottom-left-radius: 0px; +} + +/* Left Side */ +.ui[class*="left labeled"].button > .button { + border-top-left-radius: 0px; + border-bottom-left-radius: 0px; +} +.ui[class*="left labeled"].button > .label { + border-top-right-radius: 0px; + border-bottom-right-radius: 0px; +} + +/*------------------- + Social +--------------------*/ + +/* Facebook */ +.ui.facebook.button { + background-color: @facebookColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + background-image: @coloredBackgroundImage; + box-shadow: @coloredBoxShadow; +} +.ui.facebook.button:hover { + background-color: @facebookHoverColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; +} +.ui.facebook.button:active { + background-color: @facebookDownColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; +} + +/* Twitter */ +.ui.twitter.button { + background-color: @twitterColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + background-image: @coloredBackgroundImage; + box-shadow: @coloredBoxShadow; +} +.ui.twitter.button:hover { + background-color: @twitterHoverColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; +} +.ui.twitter.button:active { + background-color: @twitterDownColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; +} + +/* Google Plus */ +.ui.google.plus.button { + background-color: @googlePlusColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + background-image: @coloredBackgroundImage; + box-shadow: @coloredBoxShadow; +} +.ui.google.plus.button:hover { + background-color: @googlePlusHoverColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; +} +.ui.google.plus.button:active { + background-color: @googlePlusDownColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; +} + +/* Linked In */ +.ui.linkedin.button { + background-color: @linkedInColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; +} +.ui.linkedin.button:hover { + background-color: @linkedInHoverColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; +} +.ui.linkedin.button:active { + background-color: @linkedInDownColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; +} + +/* YouTube */ +.ui.youtube.button { + background-color: @youtubeColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + background-image: @coloredBackgroundImage; + box-shadow: @coloredBoxShadow; +} +.ui.youtube.button:hover { + background-color: @youtubeHoverColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; +} +.ui.youtube.button:active { + background-color: @youtubeDownColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; +} + +/* Instagram */ +.ui.instagram.button { + background-color: @instagramColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + background-image: @coloredBackgroundImage; + box-shadow: @coloredBoxShadow; +} +.ui.instagram.button:hover { + background-color: @instagramHoverColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; +} +.ui.instagram.button:active { + background-color: @instagramDownColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; +} + +/* Pinterest */ +.ui.pinterest.button { + background-color: @pinterestColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + background-image: @coloredBackgroundImage; + box-shadow: @coloredBoxShadow; +} +.ui.pinterest.button:hover { + background-color: @pinterestHoverColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; +} +.ui.pinterest.button:active { + background-color: @pinterestDownColor; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; +} + +/* VK */ +.ui.vk.button { + background-color: #4D7198; + color: @white; + background-image: @coloredBackgroundImage; + box-shadow: @coloredBoxShadow; +} +.ui.vk.button:hover { + background-color: @vkHoverColor; + color: @white; +} +.ui.vk.button:active { + background-color: @vkDownColor; + color: @white; +} + +/*-------------- + Icon +---------------*/ + +.ui.button > .icon:not(.button) { + height: @iconHeight; + opacity: @iconOpacity; + margin: @iconMargin; + transition: @iconTransition; + vertical-align: @iconVerticalAlign; + color: @iconColor; +} + +.ui.button:not(.icon) > .icon:not(.button):not(.dropdown) { + margin: @iconMargin; +} +.ui.button:not(.icon) > .right.icon:not(.button):not(.dropdown) { + margin: @rightIconMargin; +} + +/******************************* + Variations +*******************************/ + + +/*------------------- + Floated +--------------------*/ + +.ui[class*="left floated"].buttons, +.ui[class*="left floated"].button { + float: left; + margin-left: 0em; + margin-right: @floatedMargin; +} +.ui[class*="right floated"].buttons, +.ui[class*="right floated"].button { + float: right; + margin-right: 0em; + margin-left: @floatedMargin; +} + +/*------------------- + Compact +--------------------*/ + +.ui.compact.buttons .button, +.ui.compact.button { + padding: @compactVerticalPadding @compactHorizontalPadding ( @compactVerticalPadding + @shadowOffset ); +} +.ui.compact.icon.buttons .button, +.ui.compact.icon.button { + padding: @compactVerticalPadding @compactVerticalPadding ( @compactVerticalPadding + @shadowOffset ); +} +.ui.compact.labeled.icon.buttons .button, +.ui.compact.labeled.icon.button { + padding: @compactVerticalPadding (@compactHorizontalPadding + @labeledIconWidth) ( @compactVerticalPadding + @shadowOffset ); +} + +/*------------------- + Sizes +--------------------*/ + +.ui.mini.buttons .button, +.ui.mini.buttons .or, +.ui.mini.button { + font-size: @mini; +} +.ui.tiny.buttons .button, +.ui.tiny.buttons .or, +.ui.tiny.button { + font-size: @tiny; +} +.ui.small.buttons .button, +.ui.small.buttons .or, +.ui.small.button { + font-size: @small; +} +.ui.buttons .button, +.ui.buttons .or, +.ui.button { + font-size: @medium; +} +.ui.large.buttons .button, +.ui.large.buttons .or, +.ui.large.button { + font-size: @large; +} +.ui.big.buttons .button, +.ui.big.buttons .or, +.ui.big.button { + font-size: @big; +} +.ui.huge.buttons .button, +.ui.huge.buttons .or, +.ui.huge.button { + font-size: @huge; +} +.ui.massive.buttons .button, +.ui.massive.buttons .or, +.ui.massive.button { + font-size: @massive; +} + +/*-------------- + Icon Only +---------------*/ + +.ui.icon.buttons .button, +.ui.icon.button { + padding: @verticalPadding @verticalPadding ( @verticalPadding + @shadowOffset ); +} +.ui.icon.buttons .button > .icon, +.ui.icon.button > .icon { + opacity: @iconButtonOpacity; + margin: 0em !important; + vertical-align: top; +} + + +/*------------------- + Basic +--------------------*/ + +.ui.basic.buttons .button, +.ui.basic.button { + background: @basicBackground !important; + color: @basicTextColor !important; + font-weight: @basicFontWeight; + border-radius: @basicBorderRadius; + text-transform: @basicTextTransform; + text-shadow: none !important; + box-shadow: @basicBoxShadow; +} +.ui.basic.buttons { + box-shadow: @basicGroupBoxShadow; + border: @basicGroupBorder; + border-radius: @borderRadius; +} +.ui.basic.buttons .button { + border-radius: 0em; +} + +.ui.basic.buttons .button:hover, +.ui.basic.button:hover { + background: @basicHoverBackground !important; + color: @basicHoverTextColor !important; + box-shadow: @basicHoverBoxShadow; +} +.ui.basic.buttons .button:focus, +.ui.basic.button:focus { + background: @basicFocusBackground !important; + color: @basicFocusTextColor !important; + box-shadow: @basicFocusBoxShadow; +} +.ui.basic.buttons .button:active, +.ui.basic.button:active { + background: @basicDownBackground !important; + color: @basicDownTextColor !important; + box-shadow: @basicDownBoxShadow; +} +.ui.basic.buttons .active.button, +.ui.basic.active.button { + background: @basicActiveBackground !important; + box-shadow: @basicActiveBoxShadow !important; + color: @basicActiveTextColor !important; +} +.ui.basic.buttons .active.button:hover, +.ui.basic.active.button:hover { + background-color: @transparentBlack; +} + +/* Vertical */ +.ui.basic.buttons .button:hover { + box-shadow: @basicHoverBoxShadow inset; +} +.ui.basic.buttons .button:active { + box-shadow: @basicDownBoxShadow inset; +} +.ui.basic.buttons .active.button { + box-shadow: @basicActiveBoxShadow !important; +} + +/* Standard Basic Inverted */ +.ui.basic.inverted.buttons .button, +.ui.basic.inverted.button { + background-color: transparent !important; + color: @offWhite !important; + box-shadow: @basicInvertedBoxShadow !important; +} +.ui.basic.inverted.buttons .button:hover, +.ui.basic.inverted.button:hover { + color: @white !important; + box-shadow: @basicInvertedHoverBoxShadow !important; +} +.ui.basic.inverted.buttons .button:focus, +.ui.basic.inverted.button:focus { + color: @white !important; + box-shadow: @basicInvertedFocusBoxShadow !important; +} +.ui.basic.inverted.buttons .button:active, +.ui.basic.inverted.button:active { + background-color: @transparentWhite !important; + color: @white !important; + box-shadow: @basicInvertedDownBoxShadow !important; +} +.ui.basic.inverted.buttons .active.button, +.ui.basic.inverted.active.button { + background-color: @transparentWhite; + color: @invertedTextColor; + text-shadow: @invertedTextShadow; + box-shadow: @basicInvertedActiveBoxShadow; +} +.ui.basic.inverted.buttons .active.button:hover, +.ui.basic.inverted.active.button:hover { + background-color: @strongTransparentWhite; + box-shadow: @basicInvertedHoverBoxShadow !important; +} + + +/* Basic Group */ +.ui.basic.buttons .button { + border-left: @basicGroupBorder; + box-shadow: none; +} +.ui.basic.vertical.buttons .button { + border-left: none; +} +.ui.basic.vertical.buttons .button { + border-left-width: 0px; + border-top: @basicGroupBorder; +} +.ui.basic.vertical.buttons .button:first-child { + border-top-width: 0px; +} + + + +/*-------------- + Labeled Icon +---------------*/ + +.ui.labeled.icon.buttons .button, +.ui.labeled.icon.button { + position: relative; + padding-left: @labeledIconPadding !important; + padding-right: @horizontalPadding !important; +} + +/* Left Labeled */ +.ui.labeled.icon.buttons > .button > .icon, +.ui.labeled.icon.button > .icon { + position: absolute; + height: 100%; + line-height: 1; + border-radius: 0px; + border-top-left-radius: inherit; + border-bottom-left-radius: inherit; + text-align: center; + + margin: @labeledIconMargin; + width: @labeledIconWidth; + background-color: @labeledIconBackgroundColor; + color: @labeledIconColor; + box-shadow: @labeledIconLeftShadow; +} + +/* Left Labeled */ +.ui.labeled.icon.buttons > .button > .icon, +.ui.labeled.icon.button > .icon { + top: 0em; + left: 0em; +} + +/* Right Labeled */ +.ui[class*="right labeled"].icon.button { + padding-right: @labeledIconPadding !important; + padding-left: @horizontalPadding !important; +} +.ui[class*="right labeled"].icon.button > .icon { + left: auto; + right: 0em; + border-radius: 0px; + border-top-right-radius: inherit; + border-bottom-right-radius: inherit; + box-shadow: @labeledIconRightShadow; +} + + +.ui.labeled.icon.buttons > .button > .icon:before, +.ui.labeled.icon.button > .icon:before, +.ui.labeled.icon.buttons > .button > .icon:after, +.ui.labeled.icon.button > .icon:after { + display: block; + position: absolute; + width: 100%; + top: 50%; + text-align: center; + transform: translateY(-50%); +} + +/* Loading */ +.ui.labeled.icon.button > .icon.loading { + animation: none; +} +.ui.labeled.icon.button > .icon.loading:before { + animation: labeled-button-icon-loading @loadingIconDuration linear infinite; +} + +@keyframes labeled-button-icon-loading { + from { + transform: translateY(-50%) rotate(0deg); + } + to { + transform: translateY(-50%) rotate(360deg); + } +} + +.ui.labeled.icon.buttons .button > .icon { + border-radius: 0em; +} +.ui.labeled.icon.buttons .button:first-child > .icon { + border-top-left-radius: @borderRadius; + border-bottom-left-radius: @borderRadius; +} +.ui.labeled.icon.buttons .button:last-child > .icon { + border-top-right-radius: @borderRadius; + border-bottom-right-radius: @borderRadius; +} +.ui.vertical.labeled.icon.buttons .button:first-child > .icon { + border-radius: 0em; + border-top-left-radius: @borderRadius; +} +.ui.vertical.labeled.icon.buttons .button:last-child > .icon { + border-radius: 0em; + border-bottom-left-radius: @borderRadius; +} + +/* Fluid Labeled */ +.ui.fluid[class*="left labeled"].icon.button, +.ui.fluid[class*="right labeled"].icon.button { + padding-left: @horizontalPadding !important; + padding-right: @horizontalPadding !important; +} + + + + +/*-------------- + Toggle +---------------*/ + +/* Toggle (Modifies active state to give affordances) */ +.ui.toggle.buttons .active.button, +.ui.buttons .button.toggle.active, +.ui.button.toggle.active { + background-color: @positiveColor !important; + box-shadow: none !important; + text-shadow: @invertedTextShadow; + color: @invertedTextColor !important; +} +.ui.button.toggle.active:hover { + background-color: @positiveColorHover !important; + text-shadow: @invertedTextShadow; + color: @invertedTextColor !important; +} + +/*-------------- + Circular +---------------*/ + +.ui.circular.button { + border-radius: 10em; +} +.ui.circular.button > .icon { + width: 1em; + vertical-align: baseline; +} + + +/*------------------- + Or Buttons +--------------------*/ + +.ui.buttons .or { + position: relative; + width: @orGap; + height: @orHeight; + z-index: @orZIndex; +} +.ui.buttons .or:before { + position: absolute; + text-align: center; + border-radius: @circularRadius; + + content: @orText; + top: 50%; + left: 50%; + background-color: @orBackgroundColor; + text-shadow: @orTextShadow; + + margin-top: @orVerticalOffset; + margin-left: @orHorizontalOffset; + + width: @orCircleSize; + height: @orCircleSize; + + line-height: @orLineHeight; + color: @orTextColor; + + font-style: @orTextStyle; + font-weight: @orTextWeight; + + box-shadow: @orBoxShadow; +} +.ui.buttons .or[data-text]:before { + content: attr(data-text); +} + +/* Fluid Or */ +.ui.fluid.buttons .or { + width: 0em !important; +} +.ui.fluid.buttons .or:after { + display: none; +} + + +/*------------------- + Attached +--------------------*/ + + +/* Singular */ +.ui.attached.button { + position: relative; + display: block; + margin: 0em; + border-radius: 0em; + box-shadow: @attachedBoxShadow !important; +} + +/* Top / Bottom */ +.ui.attached.top.button { + border-radius: @borderRadius @borderRadius 0em 0em; +} +.ui.attached.bottom.button { + border-radius: 0em 0em @borderRadius @borderRadius; +} + +/* Left / Right */ +.ui.left.attached.button { + display: inline-block; + border-left: none; + text-align: right; + + padding-right: @attachedHorizontalPadding; + border-radius: @borderRadius 0em 0em @borderRadius; +} +.ui.right.attached.button { + display: inline-block; + text-align: left; + padding-left: @attachedHorizontalPadding; + border-radius: 0em @borderRadius @borderRadius 0em; +} + +/* Plural */ +.ui.attached.buttons { + position: relative; + display: flex; + border-radius: 0em; + width: auto !important; + z-index: @attachedZIndex; + margin-left: @attachedOffset; + margin-right: @attachedOffset; +} +.ui.attached.buttons .button { + margin: 0em; +} +.ui.attached.buttons .button:first-child { + border-radius: 0em; +} +.ui.attached.buttons .button:last-child { + border-radius: 0em; +} + +/* Top / Bottom */ +.ui[class*="top attached"].buttons { + margin-bottom: @attachedOffset; + border-radius: @borderRadius @borderRadius 0em 0em; +} +.ui[class*="top attached"].buttons .button:first-child { + border-radius: @borderRadius 0em 0em 0em; +} +.ui[class*="top attached"].buttons .button:last-child { + border-radius: 0em @borderRadius 0em 0em; +} + +.ui[class*="bottom attached"].buttons { + margin-top: @attachedOffset; + border-radius: 0em 0em @borderRadius @borderRadius; +} +.ui[class*="bottom attached"].buttons .button:first-child { + border-radius: 0em 0em 0em @borderRadius; +} +.ui[class*="bottom attached"].buttons .button:last-child { + border-radius: 0em 0em @borderRadius 0em; +} + +/* Left / Right */ +.ui[class*="left attached"].buttons { + display: inline-flex; + margin-right: 0em; + margin-left: @attachedOffset; + border-radius: 0em @borderRadius @borderRadius 0em; +} +.ui[class*="left attached"].buttons .button:first-child { + margin-left: @attachedOffset; + border-radius: 0em @borderRadius 0em 0em; +} +.ui[class*="left attached"].buttons .button:last-child { + margin-left: @attachedOffset; + border-radius: 0em 0em @borderRadius 0em; +} + +.ui[class*="right attached"].buttons { + display: inline-flex; + margin-left: 0em; + margin-right: @attachedOffset; + border-radius: @borderRadius 0em 0em @borderRadius; +} +.ui[class*="right attached"].buttons .button:first-child { + margin-left: @attachedOffset; + border-radius: @borderRadius 0em 0em 0em; +} +.ui[class*="right attached"].buttons .button:last-child { + margin-left: @attachedOffset; + border-radius: 0em 0em 0em @borderRadius; +} + +/*------------------- + Fluid +--------------------*/ + +.ui.fluid.buttons, +.ui.fluid.button { + width: 100%; +} +.ui.fluid.button { + display: block; +} + +.ui.two.buttons { + width: 100%; +} +.ui.two.buttons > .button { + width: 50%; +} + +.ui.three.buttons { + width: 100%; +} +.ui.three.buttons > .button { + width: 33.333%; +} + +.ui.four.buttons { + width: 100%; +} +.ui.four.buttons > .button { + width: 25%; +} + +.ui.five.buttons { + width: 100%; +} +.ui.five.buttons > .button { + width: 20%; +} + +.ui.six.buttons { + width: 100%; +} +.ui.six.buttons > .button { + width: 16.666%; +} + +.ui.seven.buttons { + width: 100%; +} +.ui.seven.buttons > .button { + width: 14.285%; +} + +.ui.eight.buttons { + width: 100%; +} +.ui.eight.buttons > .button { + width: 12.500%; +} + +.ui.nine.buttons { + width: 100%; +} +.ui.nine.buttons > .button { + width: 11.11%; +} + +.ui.ten.buttons { + width: 100%; +} +.ui.ten.buttons > .button { + width: 10%; +} + +.ui.eleven.buttons { + width: 100%; +} +.ui.eleven.buttons > .button { + width: 9.09%; +} + +.ui.twelve.buttons { + width: 100%; +} +.ui.twelve.buttons > .button { + width: 8.3333%; +} + +/* Fluid Vertical Buttons */ +.ui.fluid.vertical.buttons, +.ui.fluid.vertical.buttons > .button { + display: flex; + width: auto; +} + +.ui.two.vertical.buttons > .button { + height: 50%; +} +.ui.three.vertical.buttons > .button { + height: 33.333%; +} +.ui.four.vertical.buttons > .button { + height: 25%; +} +.ui.five.vertical.buttons > .button { + height: 20%; +} +.ui.six.vertical.buttons > .button { + height: 16.666%; +} +.ui.seven.vertical.buttons > .button { + height: 14.285%; +} +.ui.eight.vertical.buttons > .button { + height: 12.500%; +} +.ui.nine.vertical.buttons > .button { + height: 11.11%; +} +.ui.ten.vertical.buttons > .button { + height: 10%; +} +.ui.eleven.vertical.buttons > .button { + height: 9.09%; +} +.ui.twelve.vertical.buttons > .button { + height: 8.3333%; +} + + +/*------------------- + Colors +--------------------*/ + +/*--- Black ---*/ +.ui.black.buttons .button, +.ui.black.button { + background-color: @black; + color: @blackTextColor; + text-shadow: @blackTextShadow; + background-image: @coloredBackgroundImage; +} +.ui.black.button { + box-shadow: @coloredBoxShadow; +} +.ui.black.buttons .button:hover, +.ui.black.button:hover { + background-color: @blackHover; + color: @blackTextColor; + text-shadow: @blackTextShadow; +} +.ui.black.buttons .button:focus, +.ui.black.button:focus { + background-color: @blackFocus; + color: @blackTextColor; + text-shadow: @blackTextShadow; +} +.ui.black.buttons .button:active, +.ui.black.button:active { + background-color: @blackDown; + color: @blackTextColor; + text-shadow: @blackTextShadow; +} +.ui.black.buttons .active.button, +.ui.black.buttons .active.button:active, +.ui.black.active.button, +.ui.black.button .active.button:active { + background-color: @blackActive; + color: @blackTextColor; + text-shadow: @blackTextShadow; +} + +/* Basic */ +.ui.basic.black.buttons .button, +.ui.basic.black.button { + box-shadow: 0px 0px 0px @basicBorderSize @black inset !important; + color: @black !important; +} +.ui.basic.black.buttons .button:hover, +.ui.basic.black.button:hover { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @blackHover inset !important; + color: @blackHover !important; +} +.ui.basic.black.buttons .button:focus, +.ui.basic.black.button:focus { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @blackFocus inset !important; + color: @blackHover !important; +} +.ui.basic.black.buttons .active.button, +.ui.basic.black.active.button { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @blackActive inset !important; + color: @blackDown !important; +} +.ui.basic.black.buttons .button:active, +.ui.basic.black.button:active { + box-shadow: 0px 0px 0px @basicColoredBorderSize @blackDown inset !important; + color: @blackDown !important; +} +.ui.buttons:not(.vertical) > .basic.black.button:not(:first-child) { + margin-left: -@basicColoredBorderSize; +} + +/* Inverted */ +.ui.inverted.black.buttons .button, +.ui.inverted.black.button { + background-color: transparent; + box-shadow: 0px 0px 0px @invertedBorderSize @solidBorderColor inset !important; + color: @invertedTextColor; +} +.ui.inverted.black.buttons .button:hover, +.ui.inverted.black.button:hover, +.ui.inverted.black.buttons .button:focus, +.ui.inverted.black.button:focus, +.ui.inverted.black.buttons .button.active, +.ui.inverted.black.button.active, +.ui.inverted.black.buttons .button:active, +.ui.inverted.black.button:active { + box-shadow: none !important; + color: @lightBlackTextColor; +} +.ui.inverted.black.buttons .button:hover, +.ui.inverted.black.button:hover { + background-color: @lightBlackHover; +} +.ui.inverted.black.buttons .button:focus, +.ui.inverted.black.button:focus { + background-color: @lightBlackFocus; +} +.ui.inverted.black.buttons .active.button, +.ui.inverted.black.active.button { + background-color: @lightBlackActive; +} +.ui.inverted.black.buttons .button:active, +.ui.inverted.black.button:active { + background-color: @lightBlackDown; +} + +/* Inverted Basic */ +.ui.inverted.black.basic.buttons .button, +.ui.inverted.black.buttons .basic.button, +.ui.inverted.black.basic.button { + background-color: transparent; + box-shadow: @basicInvertedBoxShadow !important; + color: @white !important; +} +.ui.inverted.black.basic.buttons .button:hover, +.ui.inverted.black.buttons .basic.button:hover, +.ui.inverted.black.basic.button:hover { + box-shadow: 0px 0px 0px @invertedBorderSize @lightBlackHover inset !important; + color: @white !important; +} +.ui.inverted.black.basic.buttons .button:focus, +.ui.inverted.black.basic.buttons .button:focus, +.ui.inverted.black.basic.button:focus { + box-shadow: 0px 0px 0px @invertedBorderSize @lightBlackFocus inset !important; + color: @lightBlack !important; +} +.ui.inverted.black.basic.buttons .active.button, +.ui.inverted.black.buttons .basic.active.button, +.ui.inverted.black.basic.active.button { + box-shadow: 0px 0px 0px @invertedBorderSize @lightBlackActive inset !important; + color: @white !important; +} +.ui.inverted.black.basic.buttons .button:active, +.ui.inverted.black.buttons .basic.button:active, +.ui.inverted.black.basic.button:active { + box-shadow: 0px 0px 0px @invertedBorderSize @lightBlackDown inset !important; + color: @white !important; +} + +/*--- Grey ---*/ +.ui.grey.buttons .button, +.ui.grey.button { + background-color: @grey; + color: @greyTextColor; + text-shadow: @greyTextShadow; + background-image: @coloredBackgroundImage; +} +.ui.grey.button { + box-shadow: @coloredBoxShadow; +} +.ui.grey.buttons .button:hover, +.ui.grey.button:hover { + background-color: @greyHover; + color: @greyTextColor; + text-shadow: @greyTextShadow; +} +.ui.grey.buttons .button:focus, +.ui.grey.button:focus { + background-color: @greyFocus; + color: @greyTextColor; + text-shadow: @greyTextShadow; +} +.ui.grey.buttons .button:active, +.ui.grey.button:active { + background-color: @greyDown; + color: @greyTextColor; + text-shadow: @greyTextShadow; +} +.ui.grey.buttons .active.button, +.ui.grey.buttons .active.button:active, +.ui.grey.active.button, +.ui.grey.button .active.button:active { + background-color: @greyActive; + color: @greyTextColor; + text-shadow: @greyTextShadow; +} + +/* Basic */ +.ui.basic.grey.buttons .button, +.ui.basic.grey.button { + box-shadow: 0px 0px 0px @basicBorderSize @grey inset !important; + color: @grey !important; +} +.ui.basic.grey.buttons .button:hover, +.ui.basic.grey.button:hover { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @greyHover inset !important; + color: @greyHover !important; +} +.ui.basic.grey.buttons .button:focus, +.ui.basic.grey.button:focus { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @greyFocus inset !important; + color: @greyHover !important; +} +.ui.basic.grey.buttons .active.button, +.ui.basic.grey.active.button { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @greyActive inset !important; + color: @greyDown !important; +} +.ui.basic.grey.buttons .button:active, +.ui.basic.grey.button:active { + box-shadow: 0px 0px 0px @basicColoredBorderSize @greyDown inset !important; + color: @greyDown !important; +} +.ui.buttons:not(.vertical) > .basic.grey.button:not(:first-child) { + margin-left: -@basicColoredBorderSize; +} + +/* Inverted */ +.ui.inverted.grey.buttons .button, +.ui.inverted.grey.button { + background-color: transparent; + box-shadow: 0px 0px 0px @invertedBorderSize @solidBorderColor inset !important; + color: @invertedTextColor; +} +.ui.inverted.grey.buttons .button:hover, +.ui.inverted.grey.button:hover, +.ui.inverted.grey.buttons .button:focus, +.ui.inverted.grey.button:focus, +.ui.inverted.grey.buttons .button.active, +.ui.inverted.grey.button.active, +.ui.inverted.grey.buttons .button:active, +.ui.inverted.grey.button:active { + box-shadow: none !important; + color: @lightGreyTextColor; +} +.ui.inverted.grey.buttons .button:hover, +.ui.inverted.grey.button:hover { + background-color: @lightGreyHover; +} +.ui.inverted.grey.buttons .button:focus, +.ui.inverted.grey.button:focus { + background-color: @lightGreyFocus; +} +.ui.inverted.grey.buttons .active.button, +.ui.inverted.grey.active.button { + background-color: @lightGreyActive; +} +.ui.inverted.grey.buttons .button:active, +.ui.inverted.grey.button:active { + background-color: @lightGreyDown; +} + +/* Inverted Basic */ +.ui.inverted.grey.basic.buttons .button, +.ui.inverted.grey.buttons .basic.button, +.ui.inverted.grey.basic.button { + background-color: transparent; + box-shadow: @basicInvertedBoxShadow !important; + color: @white !important; +} +.ui.inverted.grey.basic.buttons .button:hover, +.ui.inverted.grey.buttons .basic.button:hover, +.ui.inverted.grey.basic.button:hover { + box-shadow: 0px 0px 0px @invertedBorderSize @lightGreyHover inset !important; + color: @white !important; +} +.ui.inverted.grey.basic.buttons .button:focus, +.ui.inverted.grey.basic.buttons .button:focus, +.ui.inverted.grey.basic.button:focus { + box-shadow: 0px 0px 0px @invertedBorderSize @lightGreyFocus inset !important; + color: @lightGrey !important; +} +.ui.inverted.grey.basic.buttons .active.button, +.ui.inverted.grey.buttons .basic.active.button, +.ui.inverted.grey.basic.active.button { + box-shadow: 0px 0px 0px @invertedBorderSize @lightGreyActive inset !important; + color: @white !important; +} +.ui.inverted.grey.basic.buttons .button:active, +.ui.inverted.grey.buttons .basic.button:active, +.ui.inverted.grey.basic.button:active { + box-shadow: 0px 0px 0px @invertedBorderSize @lightGreyDown inset !important; + color: @white !important; +} + + +/*--- Brown ---*/ +.ui.brown.buttons .button, +.ui.brown.button { + background-color: @brown; + color: @brownTextColor; + text-shadow: @brownTextShadow; + background-image: @coloredBackgroundImage; +} +.ui.brown.button { + box-shadow: @coloredBoxShadow; +} +.ui.brown.buttons .button:hover, +.ui.brown.button:hover { + background-color: @brownHover; + color: @brownTextColor; + text-shadow: @brownTextShadow; +} +.ui.brown.buttons .button:focus, +.ui.brown.button:focus { + background-color: @brownFocus; + color: @brownTextColor; + text-shadow: @brownTextShadow; +} +.ui.brown.buttons .button:active, +.ui.brown.button:active { + background-color: @brownDown; + color: @brownTextColor; + text-shadow: @brownTextShadow; +} +.ui.brown.buttons .active.button, +.ui.brown.buttons .active.button:active, +.ui.brown.active.button, +.ui.brown.button .active.button:active { + background-color: @brownActive; + color: @brownTextColor; + text-shadow: @brownTextShadow; +} + +/* Basic */ +.ui.basic.brown.buttons .button, +.ui.basic.brown.button { + box-shadow: 0px 0px 0px @basicBorderSize @brown inset !important; + color: @brown !important; +} +.ui.basic.brown.buttons .button:hover, +.ui.basic.brown.button:hover { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @brownHover inset !important; + color: @brownHover !important; +} +.ui.basic.brown.buttons .button:focus, +.ui.basic.brown.button:focus { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @brownFocus inset !important; + color: @brownHover !important; +} +.ui.basic.brown.buttons .active.button, +.ui.basic.brown.active.button { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @brownActive inset !important; + color: @brownDown !important; +} +.ui.basic.brown.buttons .button:active, +.ui.basic.brown.button:active { + box-shadow: 0px 0px 0px @basicColoredBorderSize @brownDown inset !important; + color: @brownDown !important; +} +.ui.buttons:not(.vertical) > .basic.brown.button:not(:first-child) { + margin-left: -@basicColoredBorderSize; +} + +/* Inverted */ +.ui.inverted.brown.buttons .button, +.ui.inverted.brown.button { + background-color: transparent; + box-shadow: 0px 0px 0px @invertedBorderSize @lightBrown inset !important; + color: @lightBrown; +} +.ui.inverted.brown.buttons .button:hover, +.ui.inverted.brown.button:hover, +.ui.inverted.brown.buttons .button:focus, +.ui.inverted.brown.button:focus, +.ui.inverted.brown.buttons .button.active, +.ui.inverted.brown.button.active, +.ui.inverted.brown.buttons .button:active, +.ui.inverted.brown.button:active { + box-shadow: none !important; + color: @lightBrownTextColor; +} +.ui.inverted.brown.buttons .button:hover, +.ui.inverted.brown.button:hover { + background-color: @lightBrownHover; +} +.ui.inverted.brown.buttons .button:focus, +.ui.inverted.brown.button:focus { + background-color: @lightBrownFocus; +} +.ui.inverted.brown.buttons .active.button, +.ui.inverted.brown.active.button { + background-color: @lightBrownActive; +} +.ui.inverted.brown.buttons .button:active, +.ui.inverted.brown.button:active { + background-color: @lightBrownDown; +} + +/* Inverted Basic */ +.ui.inverted.brown.basic.buttons .button, +.ui.inverted.brown.buttons .basic.button, +.ui.inverted.brown.basic.button { + background-color: transparent; + box-shadow: @basicInvertedBoxShadow !important; + color: @white !important; +} +.ui.inverted.brown.basic.buttons .button:hover, +.ui.inverted.brown.buttons .basic.button:hover, +.ui.inverted.brown.basic.button:hover { + box-shadow: 0px 0px 0px @invertedBorderSize @lightBrownHover inset !important; + color: @lightBrown !important; +} +.ui.inverted.brown.basic.buttons .button:focus, +.ui.inverted.brown.basic.buttons .button:focus, +.ui.inverted.brown.basic.button:focus { + box-shadow: 0px 0px 0px @invertedBorderSize @lightBrownFocus inset !important; + color: @lightBrown !important; +} +.ui.inverted.brown.basic.buttons .active.button, +.ui.inverted.brown.buttons .basic.active.button, +.ui.inverted.brown.basic.active.button { + box-shadow: 0px 0px 0px @invertedBorderSize @lightBrownActive inset !important; + color: @lightBrown !important; +} +.ui.inverted.brown.basic.buttons .button:active, +.ui.inverted.brown.buttons .basic.button:active, +.ui.inverted.brown.basic.button:active { + box-shadow: 0px 0px 0px @invertedBorderSize @lightBrownDown inset !important; + color: @lightBrown !important; +} + +/*--- Blue ---*/ +.ui.blue.buttons .button, +.ui.blue.button { + background-color: @blue; + color: @blueTextColor; + text-shadow: @blueTextShadow; + background-image: @coloredBackgroundImage; +} +.ui.blue.button { + box-shadow: @coloredBoxShadow; +} +.ui.blue.buttons .button:hover, +.ui.blue.button:hover { + background-color: @blueHover; + color: @blueTextColor; + text-shadow: @blueTextShadow; +} +.ui.blue.buttons .button:focus, +.ui.blue.button:focus { + background-color: @blueFocus; + color: @blueTextColor; + text-shadow: @blueTextShadow; +} +.ui.blue.buttons .button:active, +.ui.blue.button:active { + background-color: @blueDown; + color: @blueTextColor; + text-shadow: @blueTextShadow; +} +.ui.blue.buttons .active.button, +.ui.blue.buttons .active.button:active, +.ui.blue.active.button, +.ui.blue.button .active.button:active { + background-color: @blueActive; + color: @blueTextColor; + text-shadow: @blueTextShadow; +} + +/* Basic */ +.ui.basic.blue.buttons .button, +.ui.basic.blue.button { + box-shadow: 0px 0px 0px @basicBorderSize @blue inset !important; + color: @blue !important; +} +.ui.basic.blue.buttons .button:hover, +.ui.basic.blue.button:hover { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @blueHover inset !important; + color: @blueHover !important; +} +.ui.basic.blue.buttons .button:focus, +.ui.basic.blue.button:focus { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @blueFocus inset !important; + color: @blueHover !important; +} +.ui.basic.blue.buttons .active.button, +.ui.basic.blue.active.button { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @blueActive inset !important; + color: @blueDown !important; +} +.ui.basic.blue.buttons .button:active, +.ui.basic.blue.button:active { + box-shadow: 0px 0px 0px @basicColoredBorderSize @blueDown inset !important; + color: @blueDown !important; +} +.ui.buttons:not(.vertical) > .basic.blue.button:not(:first-child) { + margin-left: -@basicColoredBorderSize; +} + +/* Inverted */ +.ui.inverted.blue.buttons .button, +.ui.inverted.blue.button { + background-color: transparent; + box-shadow: 0px 0px 0px @invertedBorderSize @lightBlue inset !important; + color: @lightBlue; +} +.ui.inverted.blue.buttons .button:hover, +.ui.inverted.blue.button:hover, +.ui.inverted.blue.buttons .button:focus, +.ui.inverted.blue.button:focus, +.ui.inverted.blue.buttons .button.active, +.ui.inverted.blue.button.active, +.ui.inverted.blue.buttons .button:active, +.ui.inverted.blue.button:active { + box-shadow: none !important; + color: @lightBlueTextColor; +} +.ui.inverted.blue.buttons .button:hover, +.ui.inverted.blue.button:hover { + background-color: @lightBlueHover; +} +.ui.inverted.blue.buttons .button:focus, +.ui.inverted.blue.button:focus { + background-color: @lightBlueFocus; +} +.ui.inverted.blue.buttons .active.button, +.ui.inverted.blue.active.button { + background-color: @lightBlueActive; +} +.ui.inverted.blue.buttons .button:active, +.ui.inverted.blue.button:active { + background-color: @lightBlueDown; +} + +/* Inverted Basic */ +.ui.inverted.blue.basic.buttons .button, +.ui.inverted.blue.buttons .basic.button, +.ui.inverted.blue.basic.button { + background-color: transparent; + box-shadow: @basicInvertedBoxShadow !important; + color: @white !important; +} +.ui.inverted.blue.basic.buttons .button:hover, +.ui.inverted.blue.buttons .basic.button:hover, +.ui.inverted.blue.basic.button:hover { + box-shadow: 0px 0px 0px @invertedBorderSize @lightBlueHover inset !important; + color: @lightBlue !important; +} +.ui.inverted.blue.basic.buttons .button:focus, +.ui.inverted.blue.basic.buttons .button:focus, +.ui.inverted.blue.basic.button:focus { + box-shadow: 0px 0px 0px @invertedBorderSize @lightBlueFocus inset !important; + color: @lightBlue !important; +} +.ui.inverted.blue.basic.buttons .active.button, +.ui.inverted.blue.buttons .basic.active.button, +.ui.inverted.blue.basic.active.button { + box-shadow: 0px 0px 0px @invertedBorderSize @lightBlueActive inset !important; + color: @lightBlue !important; +} +.ui.inverted.blue.basic.buttons .button:active, +.ui.inverted.blue.buttons .basic.button:active, +.ui.inverted.blue.basic.button:active { + box-shadow: 0px 0px 0px @invertedBorderSize @lightBlueDown inset !important; + color: @lightBlue !important; +} + +/*--- Green ---*/ +.ui.green.buttons .button, +.ui.green.button { + background-color: @green; + color: @greenTextColor; + text-shadow: @greenTextShadow; + background-image: @coloredBackgroundImage; +} +.ui.green.button { + box-shadow: @coloredBoxShadow; +} +.ui.green.buttons .button:hover, +.ui.green.button:hover { + background-color: @greenHover; + color: @greenTextColor; + text-shadow: @greenTextShadow; +} +.ui.green.buttons .button:focus, +.ui.green.button:focus { + background-color: @greenFocus; + color: @greenTextColor; + text-shadow: @greenTextShadow; +} +.ui.green.buttons .button:active, +.ui.green.button:active { + background-color: @greenDown; + color: @greenTextColor; + text-shadow: @greenTextShadow; +} +.ui.green.buttons .active.button, +.ui.green.buttons .active.button:active, +.ui.green.active.button, +.ui.green.button .active.button:active { + background-color: @greenActive; + color: @greenTextColor; + text-shadow: @greenTextShadow; +} + + +/* Basic */ +.ui.basic.green.buttons .button, +.ui.basic.green.button { + box-shadow: 0px 0px 0px @basicBorderSize @green inset !important; + color: @green !important; +} +.ui.basic.green.buttons .button:hover, +.ui.basic.green.button:hover { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @greenHover inset !important; + color: @greenHover !important; +} +.ui.basic.green.buttons .button:focus, +.ui.basic.green.button:focus { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @greenFocus inset !important; + color: @greenHover !important; +} +.ui.basic.green.buttons .active.button, +.ui.basic.green.active.button { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @greenActive inset !important; + color: @greenDown !important; +} +.ui.basic.green.buttons .button:active, +.ui.basic.green.button:active { + box-shadow: 0px 0px 0px @basicColoredBorderSize @greenDown inset !important; + color: @greenDown !important; +} +.ui.buttons:not(.vertical) > .basic.green.button:not(:first-child) { + margin-left: -@basicColoredBorderSize; +} + +/* Inverted */ +.ui.inverted.green.buttons .button, +.ui.inverted.green.button { + background-color: transparent; + box-shadow: 0px 0px 0px @invertedBorderSize @lightGreen inset !important; + color: @lightGreen; +} +.ui.inverted.green.buttons .button:hover, +.ui.inverted.green.button:hover, +.ui.inverted.green.buttons .button:focus, +.ui.inverted.green.button:focus, +.ui.inverted.green.buttons .button.active, +.ui.inverted.green.button.active, +.ui.inverted.green.buttons .button:active, +.ui.inverted.green.button:active { + box-shadow: none !important; + color: @greenTextColor; +} +.ui.inverted.green.buttons .button:hover, +.ui.inverted.green.button:hover { + background-color: @lightGreenHover; +} +.ui.inverted.green.buttons .button:focus, +.ui.inverted.green.button:focus { + background-color: @lightGreenFocus; +} +.ui.inverted.green.buttons .active.button, +.ui.inverted.green.active.button { + background-color: @lightGreenActive; +} +.ui.inverted.green.buttons .button:active, +.ui.inverted.green.button:active { + background-color: @lightGreenDown; +} + +/* Inverted Basic */ +.ui.inverted.green.basic.buttons .button, +.ui.inverted.green.buttons .basic.button, +.ui.inverted.green.basic.button { + background-color: transparent; + box-shadow: @basicInvertedBoxShadow !important; + color: @white !important; +} +.ui.inverted.green.basic.buttons .button:hover, +.ui.inverted.green.buttons .basic.button:hover, +.ui.inverted.green.basic.button:hover { + box-shadow: 0px 0px 0px @invertedBorderSize @lightGreenHover inset !important; + color: @lightGreen !important; +} +.ui.inverted.green.basic.buttons .button:focus, +.ui.inverted.green.basic.buttons .button:focus, +.ui.inverted.green.basic.button:focus { + box-shadow: 0px 0px 0px @invertedBorderSize @lightGreenFocus inset !important; + color: @lightGreen !important; +} +.ui.inverted.green.basic.buttons .active.button, +.ui.inverted.green.buttons .basic.active.button, +.ui.inverted.green.basic.active.button { + box-shadow: 0px 0px 0px @invertedBorderSize @lightGreenActive inset !important; + color: @lightGreen !important; +} +.ui.inverted.green.basic.buttons .button:active, +.ui.inverted.green.buttons .basic.button:active, +.ui.inverted.green.basic.button:active { + box-shadow: 0px 0px 0px @invertedBorderSize @lightGreenDown inset !important; + color: @lightGreen !important; +} + +/*--- Orange ---*/ +.ui.orange.buttons .button, +.ui.orange.button { + background-color: @orange; + color: @orangeTextColor; + text-shadow: @orangeTextShadow; + background-image: @coloredBackgroundImage; +} +.ui.orange.button { + box-shadow: @coloredBoxShadow; +} +.ui.orange.buttons .button:hover, +.ui.orange.button:hover { + background-color: @orangeHover; + color: @orangeTextColor; + text-shadow: @orangeTextShadow; +} +.ui.orange.buttons .button:focus, +.ui.orange.button:focus { + background-color: @orangeFocus; + color: @orangeTextColor; + text-shadow: @orangeTextShadow; +} +.ui.orange.buttons .button:active, +.ui.orange.button:active { + background-color: @orangeDown; + color: @orangeTextColor; + text-shadow: @orangeTextShadow; +} +.ui.orange.buttons .active.button, +.ui.orange.buttons .active.button:active, +.ui.orange.active.button, +.ui.orange.button .active.button:active { + background-color: @orangeActive; + color: @orangeTextColor; + text-shadow: @orangeTextShadow; +} + +/* Basic */ +.ui.basic.orange.buttons .button, +.ui.basic.orange.button { + box-shadow: 0px 0px 0px @basicBorderSize @orange inset !important; + color: @orange !important; +} +.ui.basic.orange.buttons .button:hover, +.ui.basic.orange.button:hover { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @orangeHover inset !important; + color: @orangeHover !important; +} +.ui.basic.orange.buttons .button:focus, +.ui.basic.orange.button:focus { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @orangeFocus inset !important; + color: @orangeHover !important; +} +.ui.basic.orange.buttons .active.button, +.ui.basic.orange.active.button { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @orangeActive inset !important; + color: @orangeDown !important; +} +.ui.basic.orange.buttons .button:active, +.ui.basic.orange.button:active { + box-shadow: 0px 0px 0px @basicColoredBorderSize @orangeDown inset !important; + color: @orangeDown !important; +} +.ui.buttons:not(.vertical) > .basic.orange.button:not(:first-child) { + margin-left: -@basicColoredBorderSize; +} + +/* Inverted */ +.ui.inverted.orange.buttons .button, +.ui.inverted.orange.button { + background-color: transparent; + box-shadow: 0px 0px 0px @invertedBorderSize @lightOrange inset !important; + color: @lightOrange; +} +.ui.inverted.orange.buttons .button:hover, +.ui.inverted.orange.button:hover, +.ui.inverted.orange.buttons .button:focus, +.ui.inverted.orange.button:focus, +.ui.inverted.orange.buttons .button.active, +.ui.inverted.orange.button.active, +.ui.inverted.orange.buttons .button:active, +.ui.inverted.orange.button:active { + box-shadow: none !important; + color: @lightOrangeTextColor; +} +.ui.inverted.orange.buttons .button:hover, +.ui.inverted.orange.button:hover { + background-color: @lightOrangeHover; +} +.ui.inverted.orange.buttons .button:focus, +.ui.inverted.orange.button:focus { + background-color: @lightOrangeFocus; +} +.ui.inverted.orange.buttons .active.button, +.ui.inverted.orange.active.button { + background-color: @lightOrangeActive; +} +.ui.inverted.orange.buttons .button:active, +.ui.inverted.orange.button:active { + background-color: @lightOrangeDown; +} + +/* Inverted Basic */ +.ui.inverted.orange.basic.buttons .button, +.ui.inverted.orange.buttons .basic.button, +.ui.inverted.orange.basic.button { + background-color: transparent; + box-shadow: @basicInvertedBoxShadow !important; + color: @white !important; +} +.ui.inverted.orange.basic.buttons .button:hover, +.ui.inverted.orange.buttons .basic.button:hover, +.ui.inverted.orange.basic.button:hover { + box-shadow: 0px 0px 0px @invertedBorderSize @lightOrangeHover inset !important; + color: @lightOrange !important; +} +.ui.inverted.orange.basic.buttons .button:focus, +.ui.inverted.orange.basic.buttons .button:focus, +.ui.inverted.orange.basic.button:focus { + box-shadow: 0px 0px 0px @invertedBorderSize @lightOrangeFocus inset !important; + color: @lightOrange !important; +} +.ui.inverted.orange.basic.buttons .active.button, +.ui.inverted.orange.buttons .basic.active.button, +.ui.inverted.orange.basic.active.button { + box-shadow: 0px 0px 0px @invertedBorderSize @lightOrangeActive inset !important; + color: @lightOrange !important; +} +.ui.inverted.orange.basic.buttons .button:active, +.ui.inverted.orange.buttons .basic.button:active, +.ui.inverted.orange.basic.button:active { + box-shadow: 0px 0px 0px @invertedBorderSize @lightOrangeDown inset !important; + color: @lightOrange !important; +} + +/*--- Pink ---*/ +.ui.pink.buttons .button, +.ui.pink.button { + background-color: @pink; + color: @pinkTextColor; + text-shadow: @pinkTextShadow; + background-image: @coloredBackgroundImage; +} +.ui.pink.button { + box-shadow: @coloredBoxShadow; +} +.ui.pink.buttons .button:hover, +.ui.pink.button:hover { + background-color: @pinkHover; + color: @pinkTextColor; + text-shadow: @pinkTextShadow; +} +.ui.pink.buttons .button:focus, +.ui.pink.button:focus { + background-color: @pinkFocus; + color: @pinkTextColor; + text-shadow: @pinkTextShadow; +} +.ui.pink.buttons .button:active, +.ui.pink.button:active { + background-color: @pinkDown; + color: @pinkTextColor; + text-shadow: @pinkTextShadow; +} +.ui.pink.buttons .active.button, +.ui.pink.buttons .active.button:active, +.ui.pink.active.button, +.ui.pink.button .active.button:active { + background-color: @pinkActive; + color: @pinkTextColor; + text-shadow: @pinkTextShadow; +} + +/* Basic */ +.ui.basic.pink.buttons .button, +.ui.basic.pink.button { + box-shadow: 0px 0px 0px @basicBorderSize @pink inset !important; + color: @pink !important; +} +.ui.basic.pink.buttons .button:hover, +.ui.basic.pink.button:hover { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @pinkHover inset !important; + color: @pinkHover !important; +} +.ui.basic.pink.buttons .button:focus, +.ui.basic.pink.button:focus { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @pinkFocus inset !important; + color: @pinkHover !important; +} +.ui.basic.pink.buttons .active.button, +.ui.basic.pink.active.button { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @pinkActive inset !important; + color: @pinkDown !important; +} +.ui.basic.pink.buttons .button:active, +.ui.basic.pink.button:active { + box-shadow: 0px 0px 0px @basicColoredBorderSize @pinkDown inset !important; + color: @pinkDown !important; +} +.ui.buttons:not(.vertical) > .basic.pink.button:not(:first-child) { + margin-left: -@basicColoredBorderSize; +} + +/* Inverted */ +.ui.inverted.pink.buttons .button, +.ui.inverted.pink.button { + background-color: transparent; + box-shadow: 0px 0px 0px @invertedBorderSize @lightPink inset !important; + color: @lightPink; +} +.ui.inverted.pink.buttons .button:hover, +.ui.inverted.pink.button:hover, +.ui.inverted.pink.buttons .button:focus, +.ui.inverted.pink.button:focus, +.ui.inverted.pink.buttons .button.active, +.ui.inverted.pink.button.active, +.ui.inverted.pink.buttons .button:active, +.ui.inverted.pink.button:active { + box-shadow: none !important; + color: @lightPinkTextColor; +} +.ui.inverted.pink.buttons .button:hover, +.ui.inverted.pink.button:hover { + background-color: @lightPinkHover; +} +.ui.inverted.pink.buttons .button:focus, +.ui.inverted.pink.button:focus { + background-color: @lightPinkFocus; +} +.ui.inverted.pink.buttons .active.button, +.ui.inverted.pink.active.button { + background-color: @lightPinkActive; +} +.ui.inverted.pink.buttons .button:active, +.ui.inverted.pink.button:active { + background-color: @lightPinkDown; +} + +/* Inverted Basic */ +.ui.inverted.pink.basic.buttons .button, +.ui.inverted.pink.buttons .basic.button, +.ui.inverted.pink.basic.button { + background-color: transparent; + box-shadow: @basicInvertedBoxShadow !important; + color: @white !important; +} +.ui.inverted.pink.basic.buttons .button:hover, +.ui.inverted.pink.buttons .basic.button:hover, +.ui.inverted.pink.basic.button:hover { + box-shadow: 0px 0px 0px @invertedBorderSize @lightPinkHover inset !important; + color: @lightPink !important; +} +.ui.inverted.pink.basic.buttons .button:focus, +.ui.inverted.pink.basic.buttons .button:focus, +.ui.inverted.pink.basic.button:focus { + box-shadow: 0px 0px 0px @invertedBorderSize @lightPinkFocus inset !important; + color: @lightPink !important; +} +.ui.inverted.pink.basic.buttons .active.button, +.ui.inverted.pink.buttons .basic.active.button, +.ui.inverted.pink.basic.active.button { + box-shadow: 0px 0px 0px @invertedBorderSize @lightPinkActive inset !important; + color: @lightPink !important; +} +.ui.inverted.pink.basic.buttons .button:active, +.ui.inverted.pink.buttons .basic.button:active, +.ui.inverted.pink.basic.button:active { + box-shadow: 0px 0px 0px @invertedBorderSize @lightPinkDown inset !important; + color: @lightPink !important; +} + + +/*--- Violet ---*/ +.ui.violet.buttons .button, +.ui.violet.button { + background-color: @violet; + color: @violetTextColor; + text-shadow: @violetTextShadow; + background-image: @coloredBackgroundImage; +} +.ui.violet.button { + box-shadow: @coloredBoxShadow; +} +.ui.violet.buttons .button:hover, +.ui.violet.button:hover { + background-color: @violetHover; + color: @violetTextColor; + text-shadow: @violetTextShadow; +} +.ui.violet.buttons .button:focus, +.ui.violet.button:focus { + background-color: @violetFocus; + color: @violetTextColor; + text-shadow: @violetTextShadow; +} +.ui.violet.buttons .button:active, +.ui.violet.button:active { + background-color: @violetDown; + color: @violetTextColor; + text-shadow: @violetTextShadow; +} +.ui.violet.buttons .active.button, +.ui.violet.buttons .active.button:active, +.ui.violet.active.button, +.ui.violet.button .active.button:active { + background-color: @violetActive; + color: @violetTextColor; + text-shadow: @violetTextShadow; +} + +/* Basic */ +.ui.basic.violet.buttons .button, +.ui.basic.violet.button { + box-shadow: 0px 0px 0px @basicBorderSize @violet inset !important; + color: @violet !important; +} +.ui.basic.violet.buttons .button:hover, +.ui.basic.violet.button:hover { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @violetHover inset !important; + color: @violetHover !important; +} +.ui.basic.violet.buttons .button:focus, +.ui.basic.violet.button:focus { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @violetFocus inset !important; + color: @violetHover !important; +} +.ui.basic.violet.buttons .active.button, +.ui.basic.violet.active.button { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @violetActive inset !important; + color: @violetDown !important; +} +.ui.basic.violet.buttons .button:active, +.ui.basic.violet.button:active { + box-shadow: 0px 0px 0px @basicColoredBorderSize @violetDown inset !important; + color: @violetDown !important; +} +.ui.buttons:not(.vertical) > .basic.violet.button:not(:first-child) { + margin-left: -@basicColoredBorderSize; +} + +/* Inverted */ +.ui.inverted.violet.buttons .button, +.ui.inverted.violet.button { + background-color: transparent; + box-shadow: 0px 0px 0px @invertedBorderSize @lightViolet inset !important; + color: @lightViolet; +} +.ui.inverted.violet.buttons .button:hover, +.ui.inverted.violet.button:hover, +.ui.inverted.violet.buttons .button:focus, +.ui.inverted.violet.button:focus, +.ui.inverted.violet.buttons .button.active, +.ui.inverted.violet.button.active, +.ui.inverted.violet.buttons .button:active, +.ui.inverted.violet.button:active { + box-shadow: none !important; + color: @lightVioletTextColor; +} +.ui.inverted.violet.buttons .button:hover, +.ui.inverted.violet.button:hover { + background-color: @lightVioletHover; +} +.ui.inverted.violet.buttons .button:focus, +.ui.inverted.violet.button:focus { + background-color: @lightVioletFocus; +} +.ui.inverted.violet.buttons .active.button, +.ui.inverted.violet.active.button { + background-color: @lightVioletActive; +} +.ui.inverted.violet.buttons .button:active, +.ui.inverted.violet.button:active { + background-color: @lightVioletDown; +} + +/* Inverted Basic */ +.ui.inverted.violet.basic.buttons .button, +.ui.inverted.violet.buttons .basic.button, +.ui.inverted.violet.basic.button { + background-color: transparent; + box-shadow: @basicInvertedBoxShadow !important; + color: @white !important; +} +.ui.inverted.violet.basic.buttons .button:hover, +.ui.inverted.violet.buttons .basic.button:hover, +.ui.inverted.violet.basic.button:hover { + box-shadow: 0px 0px 0px @invertedBorderSize @lightVioletHover inset !important; + color: @lightViolet !important; +} +.ui.inverted.violet.basic.buttons .button:focus, +.ui.inverted.violet.basic.buttons .button:focus, +.ui.inverted.violet.basic.button:focus { + box-shadow: 0px 0px 0px @invertedBorderSize @lightVioletFocus inset !important; + color: @lightViolet !important; +} +.ui.inverted.violet.basic.buttons .active.button, +.ui.inverted.violet.buttons .basic.active.button, +.ui.inverted.violet.basic.active.button { + box-shadow: 0px 0px 0px @invertedBorderSize @lightVioletActive inset !important; + color: @lightViolet !important; +} +.ui.inverted.violet.basic.buttons .button:active, +.ui.inverted.violet.buttons .basic.button:active, +.ui.inverted.violet.basic.button:active { + box-shadow: 0px 0px 0px @invertedBorderSize @lightVioletDown inset !important; + color: @lightViolet !important; +} + +/*--- Purple ---*/ +.ui.purple.buttons .button, +.ui.purple.button { + background-color: @purple; + color: @purpleTextColor; + text-shadow: @purpleTextShadow; + background-image: @coloredBackgroundImage; +} +.ui.purple.button { + box-shadow: @coloredBoxShadow; +} +.ui.purple.buttons .button:hover, +.ui.purple.button:hover { + background-color: @purpleHover; + color: @purpleTextColor; + text-shadow: @purpleTextShadow; +} +.ui.purple.buttons .button:focus, +.ui.purple.button:focus { + background-color: @purpleFocus; + color: @purpleTextColor; + text-shadow: @purpleTextShadow; +} +.ui.purple.buttons .button:active, +.ui.purple.button:active { + background-color: @purpleDown; + color: @purpleTextColor; + text-shadow: @purpleTextShadow; +} +.ui.purple.buttons .active.button, +.ui.purple.buttons .active.button:active, +.ui.purple.active.button, +.ui.purple.button .active.button:active { + background-color: @purpleActive; + color: @purpleTextColor; + text-shadow: @purpleTextShadow; +} + +/* Basic */ +.ui.basic.purple.buttons .button, +.ui.basic.purple.button { + box-shadow: 0px 0px 0px @basicBorderSize @purple inset !important; + color: @purple !important; +} +.ui.basic.purple.buttons .button:hover, +.ui.basic.purple.button:hover { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @purpleHover inset !important; + color: @purpleHover !important; +} +.ui.basic.purple.buttons .button:focus, +.ui.basic.purple.button:focus { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @purpleFocus inset !important; + color: @purpleHover !important; +} +.ui.basic.purple.buttons .active.button, +.ui.basic.purple.active.button { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @purpleActive inset !important; + color: @purpleDown !important; +} +.ui.basic.purple.buttons .button:active, +.ui.basic.purple.button:active { + box-shadow: 0px 0px 0px @basicColoredBorderSize @purpleDown inset !important; + color: @purpleDown !important; +} +.ui.buttons:not(.vertical) > .basic.purple.button:not(:first-child) { + margin-left: -@basicColoredBorderSize; +} + +/* Inverted */ +.ui.inverted.purple.buttons .button, +.ui.inverted.purple.button { + background-color: transparent; + box-shadow: 0px 0px 0px @invertedBorderSize @lightPurple inset !important; + color: @lightPurple; +} +.ui.inverted.purple.buttons .button:hover, +.ui.inverted.purple.button:hover, +.ui.inverted.purple.buttons .button:focus, +.ui.inverted.purple.button:focus, +.ui.inverted.purple.buttons .button.active, +.ui.inverted.purple.button.active, +.ui.inverted.purple.buttons .button:active, +.ui.inverted.purple.button:active { + box-shadow: none !important; + color: @lightPurpleTextColor; +} +.ui.inverted.purple.buttons .button:hover, +.ui.inverted.purple.button:hover { + background-color: @lightPurpleHover; +} +.ui.inverted.purple.buttons .button:focus, +.ui.inverted.purple.button:focus { + background-color: @lightPurpleFocus; +} +.ui.inverted.purple.buttons .active.button, +.ui.inverted.purple.active.button { + background-color: @lightPurpleActive; +} +.ui.inverted.purple.buttons .button:active, +.ui.inverted.purple.button:active { + background-color: @lightPurpleDown; +} + +/* Inverted Basic */ +.ui.inverted.purple.basic.buttons .button, +.ui.inverted.purple.buttons .basic.button, +.ui.inverted.purple.basic.button { + background-color: transparent; + box-shadow: @basicInvertedBoxShadow !important; + color: @white !important; +} +.ui.inverted.purple.basic.buttons .button:hover, +.ui.inverted.purple.buttons .basic.button:hover, +.ui.inverted.purple.basic.button:hover { + box-shadow: 0px 0px 0px @invertedBorderSize @lightPurpleHover inset !important; + color: @lightPurple !important; +} +.ui.inverted.purple.basic.buttons .button:focus, +.ui.inverted.purple.basic.buttons .button:focus, +.ui.inverted.purple.basic.button:focus { + box-shadow: 0px 0px 0px @invertedBorderSize @lightPurpleFocus inset !important; + color: @lightPurple !important; +} +.ui.inverted.purple.basic.buttons .active.button, +.ui.inverted.purple.buttons .basic.active.button, +.ui.inverted.purple.basic.active.button { + box-shadow: 0px 0px 0px @invertedBorderSize @lightPurpleActive inset !important; + color: @lightPurple !important; +} +.ui.inverted.purple.basic.buttons .button:active, +.ui.inverted.purple.buttons .basic.button:active, +.ui.inverted.purple.basic.button:active { + box-shadow: 0px 0px 0px @invertedBorderSize @lightPurpleDown inset !important; + color: @lightPurple !important; +} + +/*--- Red ---*/ +.ui.red.buttons .button, +.ui.red.button { + background-color: @red; + color: @redTextColor; + text-shadow: @redTextShadow; + background-image: @coloredBackgroundImage; +} +.ui.red.button { + box-shadow: @coloredBoxShadow; +} +.ui.red.buttons .button:hover, +.ui.red.button:hover { + background-color: @redHover; + color: @redTextColor; + text-shadow: @redTextShadow; +} +.ui.red.buttons .button:focus, +.ui.red.button:focus { + background-color: @redFocus; + color: @redTextColor; + text-shadow: @redTextShadow; +} +.ui.red.buttons .button:active, +.ui.red.button:active { + background-color: @redDown; + color: @redTextColor; + text-shadow: @redTextShadow; +} +.ui.red.buttons .active.button, +.ui.red.buttons .active.button:active, +.ui.red.active.button, +.ui.red.button .active.button:active { + background-color: @redActive; + color: @redTextColor; + text-shadow: @redTextShadow; +} + +/* Basic */ +.ui.basic.red.buttons .button, +.ui.basic.red.button { + box-shadow: 0px 0px 0px @basicBorderSize @red inset !important; + color: @red !important; +} +.ui.basic.red.buttons .button:hover, +.ui.basic.red.button:hover { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @redHover inset !important; + color: @redHover !important; +} +.ui.basic.red.buttons .button:focus, +.ui.basic.red.button:focus { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @redFocus inset !important; + color: @redHover !important; +} +.ui.basic.red.buttons .active.button, +.ui.basic.red.active.button { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @redActive inset !important; + color: @redDown !important; +} +.ui.basic.red.buttons .button:active, +.ui.basic.red.button:active { + box-shadow: 0px 0px 0px @basicColoredBorderSize @redDown inset !important; + color: @redDown !important; +} +.ui.buttons:not(.vertical) > .basic.red.button:not(:first-child) { + margin-left: -@basicColoredBorderSize; +} + +/* Inverted */ +.ui.inverted.red.buttons .button, +.ui.inverted.red.button { + background-color: transparent; + box-shadow: 0px 0px 0px @invertedBorderSize @lightRed inset !important; + color: @lightRed; +} +.ui.inverted.red.buttons .button:hover, +.ui.inverted.red.button:hover, +.ui.inverted.red.buttons .button:focus, +.ui.inverted.red.button:focus, +.ui.inverted.red.buttons .button.active, +.ui.inverted.red.button.active, +.ui.inverted.red.buttons .button:active, +.ui.inverted.red.button:active { + box-shadow: none !important; + color: @lightRedTextColor; +} +.ui.inverted.red.buttons .button:hover, +.ui.inverted.red.button:hover { + background-color: @lightRedHover; +} +.ui.inverted.red.buttons .button:focus, +.ui.inverted.red.button:focus { + background-color: @lightRedFocus; +} +.ui.inverted.red.buttons .active.button, +.ui.inverted.red.active.button { + background-color: @lightRedActive; +} +.ui.inverted.red.buttons .button:active, +.ui.inverted.red.button:active { + background-color: @lightRedDown; +} + +/* Inverted Basic */ +.ui.inverted.red.basic.buttons .button, +.ui.inverted.red.buttons .basic.button, +.ui.inverted.red.basic.button { + background-color: transparent; + box-shadow: @basicInvertedBoxShadow !important; + color: @white !important; +} +.ui.inverted.red.basic.buttons .button:hover, +.ui.inverted.red.buttons .basic.button:hover, +.ui.inverted.red.basic.button:hover { + box-shadow: 0px 0px 0px @invertedBorderSize @lightRedHover inset !important; + color: @lightRed !important; +} +.ui.inverted.red.basic.buttons .button:focus, +.ui.inverted.red.basic.buttons .button:focus, +.ui.inverted.red.basic.button:focus { + box-shadow: 0px 0px 0px @invertedBorderSize @lightRedFocus inset !important; + color: @lightRed !important; +} +.ui.inverted.red.basic.buttons .active.button, +.ui.inverted.red.buttons .basic.active.button, +.ui.inverted.red.basic.active.button { + box-shadow: 0px 0px 0px @invertedBorderSize @lightRedActive inset !important; + color: @lightRed !important; +} +.ui.inverted.red.basic.buttons .button:active, +.ui.inverted.red.buttons .basic.button:active, +.ui.inverted.red.basic.button:active { + box-shadow: 0px 0px 0px @invertedBorderSize @lightRedDown inset !important; + color: @lightRed !important; +} + + +/*--- Teal ---*/ +.ui.teal.buttons .button, +.ui.teal.button { + background-color: @teal; + color: @tealTextColor; + text-shadow: @tealTextShadow; + background-image: @coloredBackgroundImage; +} +.ui.teal.button { + box-shadow: @coloredBoxShadow; +} +.ui.teal.buttons .button:hover, +.ui.teal.button:hover { + background-color: @tealHover; + color: @tealTextColor; + text-shadow: @tealTextShadow; +} +.ui.teal.buttons .button:focus, +.ui.teal.button:focus { + background-color: @tealFocus; + color: @tealTextColor; + text-shadow: @tealTextShadow; +} +.ui.teal.buttons .button:active, +.ui.teal.button:active { + background-color: @tealDown; + color: @tealTextColor; + text-shadow: @tealTextShadow; +} +.ui.teal.buttons .active.button, +.ui.teal.buttons .active.button:active, +.ui.teal.active.button, +.ui.teal.button .active.button:active { + background-color: @tealActive; + color: @tealTextColor; + text-shadow: @tealTextShadow; +} + +/* Basic */ +.ui.basic.teal.buttons .button, +.ui.basic.teal.button { + box-shadow: 0px 0px 0px @basicBorderSize @teal inset !important; + color: @teal !important; +} +.ui.basic.teal.buttons .button:hover, +.ui.basic.teal.button:hover { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @tealHover inset !important; + color: @tealHover !important; +} +.ui.basic.teal.buttons .button:focus, +.ui.basic.teal.button:focus { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @tealFocus inset !important; + color: @tealHover !important; +} +.ui.basic.teal.buttons .active.button, +.ui.basic.teal.active.button { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @tealActive inset !important; + color: @tealDown !important; +} +.ui.basic.teal.buttons .button:active, +.ui.basic.teal.button:active { + box-shadow: 0px 0px 0px @basicColoredBorderSize @tealDown inset !important; + color: @tealDown !important; +} +.ui.buttons:not(.vertical) > .basic.teal.button:not(:first-child) { + margin-left: -@basicColoredBorderSize; +} + +/* Inverted */ +.ui.inverted.teal.buttons .button, +.ui.inverted.teal.button { + background-color: transparent; + box-shadow: 0px 0px 0px @invertedBorderSize @lightTeal inset !important; + color: @lightTeal; +} +.ui.inverted.teal.buttons .button:hover, +.ui.inverted.teal.button:hover, +.ui.inverted.teal.buttons .button:focus, +.ui.inverted.teal.button:focus, +.ui.inverted.teal.buttons .button.active, +.ui.inverted.teal.button.active, +.ui.inverted.teal.buttons .button:active, +.ui.inverted.teal.button:active { + box-shadow: none !important; + color: @lightTealTextColor; +} +.ui.inverted.teal.buttons .button:hover, +.ui.inverted.teal.button:hover { + background-color: @lightTealHover; +} +.ui.inverted.teal.buttons .button:focus, +.ui.inverted.teal.button:focus { + background-color: @lightTealFocus; +} +.ui.inverted.teal.buttons .active.button, +.ui.inverted.teal.active.button { + background-color: @lightTealActive; +} +.ui.inverted.teal.buttons .button:active, +.ui.inverted.teal.button:active { + background-color: @lightTealDown; +} + +/* Inverted Basic */ +.ui.inverted.teal.basic.buttons .button, +.ui.inverted.teal.buttons .basic.button, +.ui.inverted.teal.basic.button { + background-color: transparent; + box-shadow: @basicInvertedBoxShadow !important; + color: @white !important; +} +.ui.inverted.teal.basic.buttons .button:hover, +.ui.inverted.teal.buttons .basic.button:hover, +.ui.inverted.teal.basic.button:hover { + box-shadow: 0px 0px 0px @invertedBorderSize @lightTealHover inset !important; + color: @lightTeal !important; +} +.ui.inverted.teal.basic.buttons .button:focus, +.ui.inverted.teal.basic.buttons .button:focus, +.ui.inverted.teal.basic.button:focus { + box-shadow: 0px 0px 0px @invertedBorderSize @lightTealFocus inset !important; + color: @lightTeal !important; +} +.ui.inverted.teal.basic.buttons .active.button, +.ui.inverted.teal.buttons .basic.active.button, +.ui.inverted.teal.basic.active.button { + box-shadow: 0px 0px 0px @invertedBorderSize @lightTealActive inset !important; + color: @lightTeal !important; +} +.ui.inverted.teal.basic.buttons .button:active, +.ui.inverted.teal.buttons .basic.button:active, +.ui.inverted.teal.basic.button:active { + box-shadow: 0px 0px 0px @invertedBorderSize @lightTealDown inset !important; + color: @lightTeal !important; +} + + +/*--- Olive ---*/ +.ui.olive.buttons .button, +.ui.olive.button { + background-color: @olive; + color: @oliveTextColor; + text-shadow: @oliveTextShadow; + background-image: @coloredBackgroundImage; +} +.ui.olive.button { + box-shadow: @coloredBoxShadow; +} +.ui.olive.buttons .button:hover, +.ui.olive.button:hover { + background-color: @oliveHover; + color: @oliveTextColor; + text-shadow: @oliveTextShadow; +} +.ui.olive.buttons .button:focus, +.ui.olive.button:focus { + background-color: @oliveFocus; + color: @oliveTextColor; + text-shadow: @oliveTextShadow; +} +.ui.olive.buttons .button:active, +.ui.olive.button:active { + background-color: @oliveDown; + color: @oliveTextColor; + text-shadow: @oliveTextShadow; +} +.ui.olive.buttons .active.button, +.ui.olive.buttons .active.button:active, +.ui.olive.active.button, +.ui.olive.button .active.button:active { + background-color: @oliveActive; + color: @oliveTextColor; + text-shadow: @oliveTextShadow; +} + +/* Basic */ +.ui.basic.olive.buttons .button, +.ui.basic.olive.button { + box-shadow: 0px 0px 0px @basicBorderSize @olive inset !important; + color: @olive !important; +} +.ui.basic.olive.buttons .button:hover, +.ui.basic.olive.button:hover { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @oliveHover inset !important; + color: @oliveHover !important; +} +.ui.basic.olive.buttons .button:focus, +.ui.basic.olive.button:focus { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @oliveFocus inset !important; + color: @oliveHover !important; +} +.ui.basic.olive.buttons .active.button, +.ui.basic.olive.active.button { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @oliveActive inset !important; + color: @oliveDown !important; +} +.ui.basic.olive.buttons .button:active, +.ui.basic.olive.button:active { + box-shadow: 0px 0px 0px @basicColoredBorderSize @oliveDown inset !important; + color: @oliveDown !important; +} +.ui.buttons:not(.vertical) > .basic.olive.button:not(:first-child) { + margin-left: -@basicColoredBorderSize; +} + +/* Inverted */ +.ui.inverted.olive.buttons .button, +.ui.inverted.olive.button { + background-color: transparent; + box-shadow: 0px 0px 0px @invertedBorderSize @lightOlive inset !important; + color: @lightOlive; +} +.ui.inverted.olive.buttons .button:hover, +.ui.inverted.olive.button:hover, +.ui.inverted.olive.buttons .button:focus, +.ui.inverted.olive.button:focus, +.ui.inverted.olive.buttons .button.active, +.ui.inverted.olive.button.active, +.ui.inverted.olive.buttons .button:active, +.ui.inverted.olive.button:active { + box-shadow: none !important; + color: @lightOliveTextColor; +} +.ui.inverted.olive.buttons .button:hover, +.ui.inverted.olive.button:hover { + background-color: @lightOliveHover; +} +.ui.inverted.olive.buttons .button:focus, +.ui.inverted.olive.button:focus { + background-color: @lightOliveFocus; +} +.ui.inverted.olive.buttons .active.button, +.ui.inverted.olive.active.button { + background-color: @lightOliveActive; +} +.ui.inverted.olive.buttons .button:active, +.ui.inverted.olive.button:active { + background-color: @lightOliveDown; +} + +/* Inverted Basic */ +.ui.inverted.olive.basic.buttons .button, +.ui.inverted.olive.buttons .basic.button, +.ui.inverted.olive.basic.button { + background-color: transparent; + box-shadow: @basicInvertedBoxShadow !important; + color: @white !important; +} +.ui.inverted.olive.basic.buttons .button:hover, +.ui.inverted.olive.buttons .basic.button:hover, +.ui.inverted.olive.basic.button:hover { + box-shadow: 0px 0px 0px @invertedBorderSize @lightOliveHover inset !important; + color: @lightOlive !important; +} +.ui.inverted.olive.basic.buttons .button:focus, +.ui.inverted.olive.basic.buttons .button:focus, +.ui.inverted.olive.basic.button:focus { + box-shadow: 0px 0px 0px @invertedBorderSize @lightOliveFocus inset !important; + color: @lightOlive !important; +} +.ui.inverted.olive.basic.buttons .active.button, +.ui.inverted.olive.buttons .basic.active.button, +.ui.inverted.olive.basic.active.button { + box-shadow: 0px 0px 0px @invertedBorderSize @lightOliveActive inset !important; + color: @lightOlive !important; +} +.ui.inverted.olive.basic.buttons .button:active, +.ui.inverted.olive.buttons .basic.button:active, +.ui.inverted.olive.basic.button:active { + box-shadow: 0px 0px 0px @invertedBorderSize @lightOliveDown inset !important; + color: @lightOlive !important; +} + +/*--- Yellow ---*/ +.ui.yellow.buttons .button, +.ui.yellow.button { + background-color: @yellow; + color: @yellowTextColor; + text-shadow: @yellowTextShadow; + background-image: @coloredBackgroundImage; +} +.ui.yellow.button { + box-shadow: @coloredBoxShadow; +} +.ui.yellow.buttons .button:hover, +.ui.yellow.button:hover { + background-color: @yellowHover; + color: @yellowTextColor; + text-shadow: @yellowTextShadow; +} +.ui.yellow.buttons .button:focus, +.ui.yellow.button:focus { + background-color: @yellowFocus; + color: @yellowTextColor; + text-shadow: @yellowTextShadow; +} +.ui.yellow.buttons .button:active, +.ui.yellow.button:active { + background-color: @yellowDown; + color: @yellowTextColor; + text-shadow: @yellowTextShadow; +} +.ui.yellow.buttons .active.button, +.ui.yellow.buttons .active.button:active, +.ui.yellow.active.button, +.ui.yellow.button .active.button:active { + background-color: @yellowActive; + color: @yellowTextColor; + text-shadow: @yellowTextShadow; +} + +/* Basic */ +.ui.basic.yellow.buttons .button, +.ui.basic.yellow.button { + box-shadow: 0px 0px 0px @basicBorderSize @yellow inset !important; + color: @yellow !important; +} +.ui.basic.yellow.buttons .button:hover, +.ui.basic.yellow.button:hover { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @yellowHover inset !important; + color: @yellowHover !important; +} +.ui.basic.yellow.buttons .button:focus, +.ui.basic.yellow.button:focus { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @yellowFocus inset !important; + color: @yellowHover !important; +} +.ui.basic.yellow.buttons .active.button, +.ui.basic.yellow.active.button { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @yellowActive inset !important; + color: @yellowDown !important; +} +.ui.basic.yellow.buttons .button:active, +.ui.basic.yellow.button:active { + box-shadow: 0px 0px 0px @basicColoredBorderSize @yellowDown inset !important; + color: @yellowDown !important; +} +.ui.buttons:not(.vertical) > .basic.yellow.button:not(:first-child) { + margin-left: -@basicColoredBorderSize; +} + +/* Inverted */ +.ui.inverted.yellow.buttons .button, +.ui.inverted.yellow.button { + background-color: transparent; + box-shadow: 0px 0px 0px @invertedBorderSize @lightYellow inset !important; + color: @lightYellow; +} +.ui.inverted.yellow.buttons .button:hover, +.ui.inverted.yellow.button:hover, +.ui.inverted.yellow.buttons .button:focus, +.ui.inverted.yellow.button:focus, +.ui.inverted.yellow.buttons .button.active, +.ui.inverted.yellow.button.active, +.ui.inverted.yellow.buttons .button:active, +.ui.inverted.yellow.button:active { + box-shadow: none !important; + color: @lightYellowTextColor; +} +.ui.inverted.yellow.buttons .button:hover, +.ui.inverted.yellow.button:hover { + background-color: @lightYellowHover; +} +.ui.inverted.yellow.buttons .button:focus, +.ui.inverted.yellow.button:focus { + background-color: @lightYellowFocus; +} +.ui.inverted.yellow.buttons .active.button, +.ui.inverted.yellow.active.button { + background-color: @lightYellowActive; +} +.ui.inverted.yellow.buttons .button:active, +.ui.inverted.yellow.button:active { + background-color: @lightYellowDown; +} + +/* Inverted Basic */ +.ui.inverted.yellow.basic.buttons .button, +.ui.inverted.yellow.buttons .basic.button, +.ui.inverted.yellow.basic.button { + background-color: transparent; + box-shadow: @basicInvertedBoxShadow !important; + color: @white !important; +} +.ui.inverted.yellow.basic.buttons .button:hover, +.ui.inverted.yellow.buttons .basic.button:hover, +.ui.inverted.yellow.basic.button:hover { + box-shadow: 0px 0px 0px @invertedBorderSize @lightYellowHover inset !important; + color: @lightYellow !important; +} +.ui.inverted.yellow.basic.buttons .button:focus, +.ui.inverted.yellow.basic.buttons .button:focus, +.ui.inverted.yellow.basic.button:focus { + box-shadow: 0px 0px 0px @invertedBorderSize @lightYellowFocus inset !important; + color: @lightYellow !important; +} +.ui.inverted.yellow.basic.buttons .active.button, +.ui.inverted.yellow.buttons .basic.active.button, +.ui.inverted.yellow.basic.active.button { + box-shadow: 0px 0px 0px @invertedBorderSize @lightYellowActive inset !important; + color: @lightYellow !important; +} +.ui.inverted.yellow.basic.buttons .button:active, +.ui.inverted.yellow.buttons .basic.button:active, +.ui.inverted.yellow.basic.button:active { + box-shadow: 0px 0px 0px @invertedBorderSize @lightYellowDown inset !important; + color: @lightYellow !important; +} + + +/*------------------- + Primary +--------------------*/ + +/*--- Standard ---*/ +.ui.primary.buttons .button, +.ui.primary.button { + background-color: @primaryColor; + color: @primaryTextColor; + text-shadow: @primaryTextShadow; + background-image: @coloredBackgroundImage; +} +.ui.primary.button { + box-shadow: @coloredBoxShadow; +} +.ui.primary.buttons .button:hover, +.ui.primary.button:hover { + background-color: @primaryColorHover; + color: @primaryTextColor; + text-shadow: @primaryTextShadow; +} +.ui.primary.buttons .button:focus, +.ui.primary.button:focus { + background-color: @primaryColorFocus; + color: @primaryTextColor; + text-shadow: @primaryTextShadow; +} +.ui.primary.buttons .button:active, +.ui.primary.button:active { + background-color: @primaryColorDown; + color: @primaryTextColor; + text-shadow: @primaryTextShadow; +} +.ui.primary.buttons .active.button, +.ui.primary.buttons .active.button:active, +.ui.primary.active.button, +.ui.primary.button .active.button:active { + background-color: @primaryColorActive; + color: @primaryTextColor; + text-shadow: @primaryTextShadow; +} + +/* Basic */ +.ui.basic.primary.buttons .button, +.ui.basic.primary.button { + box-shadow: 0px 0px 0px @basicBorderSize @primaryColor inset !important; + color: @primaryColor !important; +} +.ui.basic.primary.buttons .button:hover, +.ui.basic.primary.button:hover { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @primaryColorHover inset !important; + color: @primaryColorHover !important; +} +.ui.basic.primary.buttons .button:focus, +.ui.basic.primary.button:focus { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @primaryColorFocus inset !important; + color: @primaryColorHover !important; +} +.ui.basic.primary.buttons .active.button, +.ui.basic.primary.active.button { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @primaryColorActive inset !important; + color: @primaryColorDown !important; +} +.ui.basic.primary.buttons .button:active, +.ui.basic.primary.button:active { + box-shadow: 0px 0px 0px @basicColoredBorderSize @primaryColorDown inset !important; + color: @primaryColorDown !important; +} +.ui.buttons:not(.vertical) > .basic.primary.button:not(:first-child) { + margin-left: -@basicColoredBorderSize; +} + +/* Inverted */ +.ui.inverted.primary.buttons .button, +.ui.inverted.primary.button { + background-color: transparent; + box-shadow: 0px 0px 0px @invertedBorderSize @lightPrimaryColor inset !important; + color: @lightPrimaryColor; +} +.ui.inverted.primary.buttons .button:hover, +.ui.inverted.primary.button:hover, +.ui.inverted.primary.buttons .button:focus, +.ui.inverted.primary.button:focus, +.ui.inverted.primary.buttons .button.active, +.ui.inverted.primary.button.active, +.ui.inverted.primary.buttons .button:active, +.ui.inverted.primary.button:active { + box-shadow: none !important; + color: @lightPrimaryTextColor; +} +.ui.inverted.primary.buttons .button:hover, +.ui.inverted.primary.button:hover { + background-color: @lightPrimaryColorHover; +} +.ui.inverted.primary.buttons .button:focus, +.ui.inverted.primary.button:focus { + background-color: @lightPrimaryColorFocus; +} +.ui.inverted.primary.buttons .active.button, +.ui.inverted.primary.active.button { + background-color: @lightPrimaryColorActive; +} +.ui.inverted.primary.buttons .button:active, +.ui.inverted.primary.button:active { + background-color: @lightPrimaryColorDown; +} + +/* Inverted Basic */ +.ui.inverted.primary.basic.buttons .button, +.ui.inverted.primary.buttons .basic.button, +.ui.inverted.primary.basic.button { + background-color: transparent; + box-shadow: @basicInvertedBoxShadow !important; + color: @white !important; +} +.ui.inverted.primary.basic.buttons .button:hover, +.ui.inverted.primary.buttons .basic.button:hover, +.ui.inverted.primary.basic.button:hover { + box-shadow: 0px 0px 0px @invertedBorderSize @lightPrimaryColorHover inset !important; + color: @lightPrimaryColor !important; +} +.ui.inverted.primary.basic.buttons .button:focus, +.ui.inverted.primary.basic.buttons .button:focus, +.ui.inverted.primary.basic.button:focus { + box-shadow: 0px 0px 0px @invertedBorderSize @lightPrimaryColorFocus inset !important; + color: @lightPrimaryColor !important; +} +.ui.inverted.primary.basic.buttons .active.button, +.ui.inverted.primary.buttons .basic.active.button, +.ui.inverted.primary.basic.active.button { + box-shadow: 0px 0px 0px @invertedBorderSize @lightPrimaryColorActive inset !important; + color: @lightPrimaryColor !important; +} +.ui.inverted.primary.basic.buttons .button:active, +.ui.inverted.primary.buttons .basic.button:active, +.ui.inverted.primary.basic.button:active { + box-shadow: 0px 0px 0px @invertedBorderSize @lightPrimaryColorDown inset !important; + color: @lightPrimaryColor !important; +} + +/*------------------- + Secondary +--------------------*/ + +/* Standard */ +.ui.secondary.buttons .button, +.ui.secondary.button { + background-color: @secondaryColor; + color: @secondaryTextColor; + text-shadow: @secondaryTextShadow; + background-image: @coloredBackgroundImage; +} +.ui.secondary.button { + box-shadow: @coloredBoxShadow; +} +.ui.secondary.buttons .button:hover, +.ui.secondary.button:hover { + background-color: @secondaryColorHover; + color: @secondaryTextColor; + text-shadow: @secondaryTextShadow; +} +.ui.secondary.buttons .button:focus, +.ui.secondary.button:focus { + background-color: @secondaryColorFocus; + color: @secondaryTextColor; + text-shadow: @secondaryTextShadow; +} +.ui.secondary.buttons .button:active, +.ui.secondary.button:active { + background-color: @secondaryColorDown; + color: @secondaryTextColor; + text-shadow: @secondaryTextShadow; +} +.ui.secondary.buttons .active.button, +.ui.secondary.buttons .active.button:active, +.ui.secondary.active.button, +.ui.secondary.button .active.button:active { + background-color: @secondaryColorActive; + color: @secondaryTextColor; + text-shadow: @secondaryTextShadow; +} + +/* Basic */ +.ui.basic.secondary.buttons .button, +.ui.basic.secondary.button { + box-shadow: 0px 0px 0px @basicBorderSize @secondaryColor inset !important; + color: @secondaryColor !important; +} +.ui.basic.secondary.buttons .button:hover, +.ui.basic.secondary.button:hover { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @secondaryColorHover inset !important; + color: @secondaryColorHover !important; +} +.ui.basic.secondary.buttons .button:focus, +.ui.basic.secondary.button:focus { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @secondaryColorFocus inset !important; + color: @secondaryColorHover !important; +} +.ui.basic.secondary.buttons .active.button, +.ui.basic.secondary.active.button { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @secondaryColorActive inset !important; + color: @secondaryColorDown !important; +} +.ui.basic.secondary.buttons .button:active, +.ui.basic.secondary.button:active { + box-shadow: 0px 0px 0px @basicColoredBorderSize @secondaryColorDown inset !important; + color: @secondaryColorDown !important; +} +.ui.buttons:not(.vertical) > .basic.primary.button:not(:first-child) { + margin-left: -@basicColoredBorderSize; +} + +/* Inverted */ +.ui.inverted.secondary.buttons .button, +.ui.inverted.secondary.button { + background-color: transparent; + box-shadow: 0px 0px 0px @invertedBorderSize @lightSecondaryColor inset !important; + color: @lightSecondaryColor; +} +.ui.inverted.secondary.buttons .button:hover, +.ui.inverted.secondary.button:hover, +.ui.inverted.secondary.buttons .button:focus, +.ui.inverted.secondary.button:focus, +.ui.inverted.secondary.buttons .button.active, +.ui.inverted.secondary.button.active, +.ui.inverted.secondary.buttons .button:active, +.ui.inverted.secondary.button:active { + box-shadow: none !important; + color: @lightSecondaryTextColor; +} +.ui.inverted.secondary.buttons .button:hover, +.ui.inverted.secondary.button:hover { + background-color: @lightSecondaryColorHover; +} +.ui.inverted.secondary.buttons .button:focus, +.ui.inverted.secondary.button:focus { + background-color: @lightSecondaryColorFocus; +} +.ui.inverted.secondary.buttons .active.button, +.ui.inverted.secondary.active.button { + background-color: @lightSecondaryColorActive; +} +.ui.inverted.secondary.buttons .button:active, +.ui.inverted.secondary.button:active { + background-color: @lightSecondaryColorDown; +} + +/* Inverted Basic */ +.ui.inverted.secondary.basic.buttons .button, +.ui.inverted.secondary.buttons .basic.button, +.ui.inverted.secondary.basic.button { + background-color: transparent; + box-shadow: @basicInvertedBoxShadow !important; + color: @white !important; +} +.ui.inverted.secondary.basic.buttons .button:hover, +.ui.inverted.secondary.buttons .basic.button:hover, +.ui.inverted.secondary.basic.button:hover { + box-shadow: 0px 0px 0px @invertedBorderSize @lightSecondaryColorHover inset !important; + color: @lightSecondaryColor !important; +} +.ui.inverted.secondary.basic.buttons .button:focus, +.ui.inverted.secondary.basic.buttons .button:focus, +.ui.inverted.secondary.basic.button:focus { + box-shadow: 0px 0px 0px @invertedBorderSize @lightSecondaryColorFocus inset !important; + color: @lightSecondaryColor !important; +} +.ui.inverted.secondary.basic.buttons .active.button, +.ui.inverted.secondary.buttons .basic.active.button, +.ui.inverted.secondary.basic.active.button { + box-shadow: 0px 0px 0px @invertedBorderSize @lightSecondaryColorActive inset !important; + color: @lightSecondaryColor !important; +} +.ui.inverted.secondary.basic.buttons .button:active, +.ui.inverted.secondary.buttons .basic.button:active, +.ui.inverted.secondary.basic.button:active { + box-shadow: 0px 0px 0px @invertedBorderSize @lightSecondaryColorDown inset !important; + color: @lightSecondaryColor !important; +} + +/*--------------- + Positive +----------------*/ + +/* Standard */ +.ui.positive.buttons .button, +.ui.positive.button { + background-color: @positiveColor; + color: @positiveTextColor; + text-shadow: @positiveTextShadow; + background-image: @coloredBackgroundImage; +} +.ui.positive.button { + box-shadow: @coloredBoxShadow; +} +.ui.positive.buttons .button:hover, +.ui.positive.button:hover { + background-color: @positiveColorHover; + color: @positiveTextColor; + text-shadow: @positiveTextShadow; +} +.ui.positive.buttons .button:focus, +.ui.positive.button:focus { + background-color: @positiveColorFocus; + color: @positiveTextColor; + text-shadow: @positiveTextShadow; +} +.ui.positive.buttons .button:active, +.ui.positive.button:active { + background-color: @positiveColorDown; + color: @positiveTextColor; + text-shadow: @positiveTextShadow; +} +.ui.positive.buttons .active.button, +.ui.positive.buttons .active.button:active, +.ui.positive.active.button, +.ui.positive.button .active.button:active { + background-color: @positiveColorActive; + color: @positiveTextColor; + text-shadow: @positiveTextShadow; +} + +/* Basic */ +.ui.basic.positive.buttons .button, +.ui.basic.positive.button { + box-shadow: 0px 0px 0px @basicBorderSize @positiveColor inset !important; + color: @positiveColor !important; +} +.ui.basic.positive.buttons .button:hover, +.ui.basic.positive.button:hover { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @positiveColorHover inset !important; + color: @positiveColorHover !important; +} +.ui.basic.positive.buttons .button:focus, +.ui.basic.positive.button:focus { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @positiveColorFocus inset !important; + color: @positiveColorHover !important; +} +.ui.basic.positive.buttons .active.button, +.ui.basic.positive.active.button { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @positiveColorActive inset !important; + color: @positiveColorDown !important; +} +.ui.basic.positive.buttons .button:active, +.ui.basic.positive.button:active { + box-shadow: 0px 0px 0px @basicColoredBorderSize @positiveColorDown inset !important; + color: @positiveColorDown !important; +} +.ui.buttons:not(.vertical) > .basic.primary.button:not(:first-child) { + margin-left: -@basicColoredBorderSize; +} + +/*--------------- + Negative +----------------*/ + +/* Standard */ +.ui.negative.buttons .button, +.ui.negative.button { + background-color: @negativeColor; + color: @negativeTextColor; + text-shadow: @negativeTextShadow; + background-image: @coloredBackgroundImage; +} +.ui.negative.button { + box-shadow: @coloredBoxShadow; +} +.ui.negative.buttons .button:hover, +.ui.negative.button:hover { + background-color: @negativeColorHover; + color: @negativeTextColor; + text-shadow: @negativeTextShadow; +} +.ui.negative.buttons .button:focus, +.ui.negative.button:focus { + background-color: @negativeColorFocus; + color: @negativeTextColor; + text-shadow: @negativeTextShadow; +} +.ui.negative.buttons .button:active, +.ui.negative.button:active { + background-color: @negativeColorDown; + color: @negativeTextColor; + text-shadow: @negativeTextShadow; +} +.ui.negative.buttons .active.button, +.ui.negative.buttons .active.button:active, +.ui.negative.active.button, +.ui.negative.button .active.button:active { + background-color: @negativeColorActive; + color: @negativeTextColor; + text-shadow: @negativeTextShadow; +} + +/* Basic */ +.ui.basic.negative.buttons .button, +.ui.basic.negative.button { + box-shadow: 0px 0px 0px @basicBorderSize @negativeColor inset !important; + color: @negativeColor !important; +} +.ui.basic.negative.buttons .button:hover, +.ui.basic.negative.button:hover { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @negativeColorHover inset !important; + color: @negativeColorHover !important; +} +.ui.basic.negative.buttons .button:focus, +.ui.basic.negative.button:focus { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @negativeColorFocus inset !important; + color: @negativeColorHover !important; +} +.ui.basic.negative.buttons .active.button, +.ui.basic.negative.active.button { + background: transparent !important; + box-shadow: 0px 0px 0px @basicColoredBorderSize @negativeColorActive inset !important; + color: @negativeColorDown !important; +} +.ui.basic.negative.buttons .button:active, +.ui.basic.negative.button:active { + box-shadow: 0px 0px 0px @basicColoredBorderSize @negativeColorDown inset !important; + color: @negativeColorDown !important; +} +.ui.buttons:not(.vertical) > .basic.primary.button:not(:first-child) { + margin-left: -@basicColoredBorderSize; +} + +/******************************* + Groups +*******************************/ + +.ui.buttons { + display: inline-flex; + flex-direction: row; + font-size: 0em; + vertical-align: baseline; + margin: @verticalMargin @horizontalMargin 0em 0em; +} +.ui.buttons:not(.basic):not(.inverted) { + box-shadow: @groupBoxShadow; +} + +/* Clearfix */ +.ui.buttons:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +/* Standard Group */ +.ui.buttons .button { + flex: 1 0 auto; + margin: 0em; + border-radius: 0em; + margin: @groupButtonOffset; +} +.ui.buttons > .ui.button:not(.basic):not(.inverted), +.ui.buttons:not(.basic):not(.inverted) > .button { + box-shadow: @groupButtonBoxShadow; +} + +.ui.buttons .button:first-child { + border-left: none; + margin-left: 0em; + border-top-left-radius: @borderRadius; + border-bottom-left-radius: @borderRadius; +} +.ui.buttons .button:last-child { + border-top-right-radius: @borderRadius; + border-bottom-right-radius: @borderRadius; +} + +/* Vertical Style */ +.ui.vertical.buttons { + display: inline-flex; + flex-direction: column; +} +.ui.vertical.buttons .button { + display: block; + float: none; + width: 100%; + margin: @verticalGroupOffset; + box-shadow: @verticalBoxShadow; + border-radius: 0em; +} +.ui.vertical.buttons .button:first-child { + border-top-left-radius: @borderRadius; + border-top-right-radius: @borderRadius; +} +.ui.vertical.buttons .button:last-child { + margin-bottom: 0px; + border-bottom-left-radius: @borderRadius; + border-bottom-right-radius: @borderRadius; +} +.ui.vertical.buttons .button:only-child { + border-radius: @borderRadius; +} + +.loadUIOverrides(); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/container.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/container.less new file mode 100644 index 00000000..14b32f20 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/container.less @@ -0,0 +1,143 @@ +/*! + * # Semantic UI - Container + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Theme +*******************************/ + +@type : 'element'; +@element : 'container'; + +@import (multiple) '../../theme.config'; + +/******************************* + Container +*******************************/ + +/* All Sizes */ +.ui.container { + display: block; + max-width: @maxWidth !important; +} + +/* Mobile */ +@media only screen and (max-width: @largestMobileScreen) { + .ui.container { + width: @mobileWidth !important; + margin-left: @mobileGutter !important; + margin-right: @mobileGutter !important; + } + .ui.grid.container { + width: @mobileGridWidth !important; + } + .ui.relaxed.grid.container { + width: @mobileRelaxedGridWidth !important; + } + .ui.very.relaxed.grid.container { + width: @mobileVeryRelaxedGridWidth !important; + } +} + +/* Tablet */ +@media only screen and (min-width: @tabletBreakpoint) and (max-width: @largestTabletScreen) { + .ui.container { + width: @tabletWidth; + margin-left: @tabletGutter !important; + margin-right: @tabletGutter !important; + } + .ui.grid.container { + width: @tabletGridWidth !important; + } + .ui.relaxed.grid.container { + width: @tabletRelaxedGridWidth !important; + } + .ui.very.relaxed.grid.container { + width: @tabletVeryRelaxedGridWidth !important; + } +} + +/* Small Monitor */ +@media only screen and (min-width: @computerBreakpoint) and (max-width: @largestSmallMonitor) { + .ui.container { + width: @computerWidth; + margin-left: @computerGutter !important; + margin-right: @computerGutter !important; + } + .ui.grid.container { + width: @computerGridWidth !important; + } + .ui.relaxed.grid.container { + width: @computerRelaxedGridWidth !important; + } + .ui.very.relaxed.grid.container { + width: @computerVeryRelaxedGridWidth !important; + } +} + +/* Large Monitor */ +@media only screen and (min-width: @largeMonitorBreakpoint) { + .ui.container { + width: @largeMonitorWidth; + margin-left: @largeMonitorGutter !important; + margin-right: @largeMonitorGutter !important; + } + .ui.grid.container { + width: @largeMonitorGridWidth !important; + } + .ui.relaxed.grid.container { + width: @largeMonitorRelaxedGridWidth !important; + } + .ui.very.relaxed.grid.container { + width: @largeMonitorVeryRelaxedGridWidth !important; + } +} + +/******************************* + Types +*******************************/ + + +/* Text Container */ +.ui.text.container { + font-family: @textFontFamily; + max-width: @textWidth !important; + line-height: @textLineHeight; +} + +.ui.text.container { + font-size: @textSize; +} + +/* Fluid */ +.ui.fluid.container { + width: 100%; +} + + +/******************************* + Variations +*******************************/ + +.ui[class*="left aligned"].container { + text-align: left; +} +.ui[class*="center aligned"].container { + text-align: center; +} +.ui[class*="right aligned"].container { + text-align: right; +} +.ui.justified.container { + text-align: justify; + hyphens: auto; +} + + +.loadUIOverrides(); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/divider.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/divider.less new file mode 100644 index 00000000..28c0c689 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/divider.less @@ -0,0 +1,255 @@ +/*! + * # Semantic UI - Divider + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Theme +*******************************/ + +@type : 'element'; +@element : 'divider'; + +@import (multiple) '../../theme.config'; + + +/******************************* + Divider +*******************************/ + +.ui.divider { + margin: @margin; + + line-height: 1; + height: 0em; + + font-weight: @fontWeight; + text-transform: @textTransform; + letter-spacing: @letterSpacing; + color: @color; + + user-select: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +/*-------------- + Basic +---------------*/ + +.ui.divider:not(.vertical):not(.horizontal) { + border-top: @shadowWidth solid @shadowColor; + border-bottom: @highlightWidth solid @highlightColor; +} + +/*-------------- + Coupling +---------------*/ + +/* Allow divider between each column row */ +.ui.grid > .column + .divider, +.ui.grid > .row > .column + .divider { + left: auto; +} + +/*-------------- + Horizontal +---------------*/ + +.ui.horizontal.divider { + display: table; + white-space: nowrap; + + height: auto; + margin: @horizontalMargin; + line-height: 1; + text-align: center; +} + +.ui.horizontal.divider:before, +.ui.horizontal.divider:after { + content: ''; + display: table-cell; + position: relative; + top: 50%; + width: 50%; + background-repeat: no-repeat; +} + +.ui.horizontal.divider:before { + background-position: right @horizontalDividerMargin top 50%; +} +.ui.horizontal.divider:after { + background-position: left @horizontalDividerMargin top 50%; +} + +/*-------------- + Vertical +---------------*/ + +.ui.vertical.divider { + position: absolute; + z-index: 2; + top: 50%; + left: 50%; + + margin: 0rem; + padding: 0em; + width: auto; + height: 50%; + + line-height: 0em; + text-align: center; + transform: translateX(-50%); +} + +.ui.vertical.divider:before, +.ui.vertical.divider:after { + position: absolute; + left: 50%; + content: ''; + z-index: 3; + + border-left: @shadowWidth solid @shadowColor; + border-right: @highlightWidth solid @highlightColor; + + width: 0%; + height: @verticalDividerHeight; +} + +.ui.vertical.divider:before { + top: -100%; +} +.ui.vertical.divider:after { + top: auto; + bottom: 0px; +} + +/* Inside grid */ +@media only screen and (max-width : @largestMobileScreen) { + + .ui.stackable.grid .ui.vertical.divider, + .ui.grid .stackable.row .ui.vertical.divider { + display: table; + white-space: nowrap; + height: auto; + margin: @horizontalMargin; + overflow: hidden; + line-height: 1; + text-align: center; + position: static; + top: 0; + left: 0; + transform: none; + } + + .ui.stackable.grid .ui.vertical.divider:before, + .ui.grid .stackable.row .ui.vertical.divider:before, + .ui.stackable.grid .ui.vertical.divider:after, + .ui.grid .stackable.row .ui.vertical.divider:after { + position: static; + left: 0; + border-left: none; + border-right: none; + content: ''; + display: table-cell; + position: relative; + top: 50%; + width: 50%; + background-repeat: no-repeat; + } + + .ui.stackable.grid .ui.vertical.divider:before, + .ui.grid .stackable.row .ui.vertical.divider:before { + background-position: right @horizontalDividerMargin top 50%; + } + .ui.stackable.grid .ui.vertical.divider:after, + .ui.grid .stackable.row .ui.vertical.divider:after { + background-position: left @horizontalDividerMargin top 50%; + } +} + +/*-------------- + Icon +---------------*/ + +.ui.divider > .icon { + margin: @dividerIconMargin; + font-size: @dividerIconSize; + height: 1em; + vertical-align: middle; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Hidden +---------------*/ + +.ui.hidden.divider { + border-color: transparent !important; +} +.ui.hidden.divider:before, +.ui.hidden.divider:after { + display: none; +} + +/*-------------- + Inverted +---------------*/ + +.ui.divider.inverted, +.ui.vertical.inverted.divider, +.ui.horizontal.inverted.divider { + color: @invertedTextColor; +} +.ui.divider.inverted, +.ui.divider.inverted:after, +.ui.divider.inverted:before { + border-top-color: @invertedShadowColor !important; + border-left-color: @invertedShadowColor !important; + border-bottom-color: @invertedHighlightColor !important; + border-right-color: @invertedHighlightColor !important; +} + +/*-------------- + Fitted +---------------*/ + +.ui.fitted.divider { + margin: 0em; +} + +/*-------------- + Clearing +---------------*/ + +.ui.clearing.divider { + clear: both; +} + +/*-------------- + Section +---------------*/ + +.ui.section.divider { + margin-top: @sectionMargin; + margin-bottom: @sectionMargin; +} + +/*-------------- + Sizes +---------------*/ + +.ui.divider { + font-size: @medium; +} + + +.loadUIOverrides(); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/flag.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/flag.less new file mode 100644 index 00000000..1f4145eb --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/flag.less @@ -0,0 +1,52 @@ +/*! + * # Semantic UI - Flag + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + + +/******************************* + Theme +*******************************/ + +@type : 'element'; +@element : 'flag'; + +@import (multiple) '../../theme.config'; + + +/******************************* + Flag +*******************************/ + +i.flag:not(.icon) { + display: inline-block; + + width: @width; + height: @height; + + line-height: @height; + vertical-align: @verticalAlign; + margin: 0em @margin 0em 0em; + + text-decoration: inherit; + + speak: none; + font-smoothing: antialiased; + backface-visibility: hidden; +} + +/* Sprite */ +i.flag:not(.icon):before { + display: inline-block; + content: ''; + background: url(@spritePath) no-repeat -108px -1976px; + width: @width; + height: @height; +} + +.loadUIOverrides(); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/header.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/header.less new file mode 100644 index 00000000..294d77a5 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/header.less @@ -0,0 +1,708 @@ +/*! + * # Semantic UI - Header + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + + +/******************************* + Theme +*******************************/ + +@type : 'element'; +@element : 'header'; + +@import (multiple) '../../theme.config'; + + +/******************************* + Header +*******************************/ + +/* Standard */ +.ui.header { + border: none; + margin: @margin; + padding: @verticalPadding @horizontalPadding; + font-family: @fontFamily; + font-weight: @fontWeight; + line-height: @lineHeight; + text-transform: @textTransform; + color: @textColor; +} + +.ui.header:first-child { + margin-top: @firstMargin; +} +.ui.header:last-child { + margin-bottom: @lastMargin; +} + +/*-------------- + Sub Header +---------------*/ + +.ui.header .sub.header { + display: block; + font-weight: @normal; + padding: 0em; + margin: @subHeaderMargin; + font-size: @subHeaderFontSize; + line-height: @subHeaderLineHeight; + color: @subHeaderColor; +} + +/*-------------- + Icon +---------------*/ + +.ui.header > .icon { + display: table-cell; + opacity: @iconOpacity; + font-size: @iconSize; + padding-top: @iconOffset; + vertical-align: @iconAlignment; +} + +/* With Text Node */ +.ui.header .icon:only-child { + display: inline-block; + padding: 0em; + margin-right: @iconMargin; +} + +/*------------------- + Image +--------------------*/ + +.ui.header > .image:not(.icon), +.ui.header > img { + display: inline-block; + margin-top: @imageOffset; + width: @imageWidth; + height: @imageHeight; + vertical-align: @imageAlignment; +} +.ui.header > .image:not(.icon):only-child, +.ui.header > img:only-child { + margin-right: @imageMargin; +} + +/*-------------- + Content +---------------*/ + +.ui.header .content { + display: inline-block; + vertical-align: @contentAlignment; +} + +/* After Image */ +.ui.header > img + .content, +.ui.header > .image + .content { + padding-left: @imageMargin; + vertical-align: @contentImageAlignment; +} + +/* After Icon */ +.ui.header > .icon + .content { + padding-left: @iconMargin; + display: table-cell; + vertical-align: @contentIconAlignment; +} + + +/*-------------- + Loose Coupling +---------------*/ + +.ui.header .ui.label { + font-size: @labelSize; + margin-left: @labelDistance; + vertical-align: @labelVerticalAlign; +} + +/* Positioning */ +.ui.header + p { + margin-top: @nextParagraphDistance; +} + + + +/******************************* + Types +*******************************/ + + +/*-------------- + Page +---------------*/ + +h1.ui.header { + font-size: @h1; +} +h2.ui.header { + font-size: @h2; +} +h3.ui.header { + font-size: @h3; +} +h4.ui.header { + font-size: @h4; +} +h5.ui.header { + font-size: @h5; +} + + +/* Sub Header */ +h1.ui.header .sub.header { + font-size: @h1SubHeaderFontSize; +} +h2.ui.header .sub.header { + font-size: @h2SubHeaderFontSize; +} +h3.ui.header .sub.header { + font-size: @h3SubHeaderFontSize; +} +h4.ui.header .sub.header { + font-size: @h4SubHeaderFontSize; +} +h5.ui.header .sub.header { + font-size: @h5SubHeaderFontSize; +} + + +/*-------------- + Content Heading +---------------*/ + +.ui.huge.header { + min-height: 1em; + font-size: @hugeFontSize; +} +.ui.large.header { + font-size: @largeFontSize; +} +.ui.medium.header { + font-size: @mediumFontSize; +} +.ui.small.header { + font-size: @smallFontSize; +} +.ui.tiny.header { + font-size: @tinyFontSize; +} + +/* Sub Header */ +.ui.huge.header .sub.header { + font-size: @hugeSubHeaderFontSize; +} +.ui.large.header .sub.header { + font-size: @hugeSubHeaderFontSize; +} +.ui.header .sub.header { + font-size: @subHeaderFontSize; +} +.ui.small.header .sub.header { + font-size: @smallSubHeaderFontSize; +} +.ui.tiny.header .sub.header { + font-size: @tinySubHeaderFontSize; +} + +/*-------------- + Sub Heading +---------------*/ + +.ui.sub.header { + padding: 0em; + margin-bottom: @subHeadingDistance; + font-weight: @subHeadingFontWeight; + font-size: @subHeadingFontSize; + text-transform: @subHeadingTextTransform; + color: @subHeadingColor; +} + +.ui.small.sub.header { + font-size: @smallSubHeadingSize; +} +.ui.sub.header { + font-size: @subHeadingFontSize; +} +.ui.large.sub.header { + font-size: @largeSubHeadingSize; +} +.ui.huge.sub.header { + font-size: @hugeSubHeadingSize; +} + + + +/*------------------- + Icon +--------------------*/ + +.ui.icon.header { + display: inline-block; + text-align: center; + margin: @iconHeaderTopMargin 0em @iconHeaderBottomMargin; +} +.ui.icon.header:after { + content: ''; + display: block; + height: 0px; + clear: both; + visibility: hidden; +} + +.ui.icon.header:first-child { + margin-top: @iconHeaderFirstMargin; +} +.ui.icon.header .icon { + float: none; + display: block; + width: auto; + height: auto; + line-height: 1; + padding: 0em; + font-size: @iconHeaderSize; + margin: 0em auto @iconHeaderMargin; + opacity: @iconHeaderOpacity; +} +.ui.icon.header .content { + display: block; + padding: 0em; +} +.ui.icon.header .circular.icon { + font-size: @circularHeaderIconSize; +} +.ui.icon.header .square.icon { + font-size: @squareHeaderIconSize; +} +.ui.block.icon.header .icon { + margin-bottom: 0em; +} +.ui.icon.header.aligned { + margin-left: auto; + margin-right: auto; + display: block; +} + +/******************************* + States +*******************************/ + +.ui.disabled.header { + opacity: @disabledOpacity; +} + + +/******************************* + Variations +*******************************/ + +/*------------------- + Inverted +--------------------*/ + +.ui.inverted.header { + color: @invertedColor; +} +.ui.inverted.header .sub.header { + color: @invertedSubHeaderColor; +} +.ui.inverted.attached.header { + background: @invertedAttachedBackground; + box-shadow: none; + border-color: transparent; +} +.ui.inverted.block.header { + background: @invertedBlockBackground; + box-shadow: none; +} +.ui.inverted.block.header { + border-bottom: none; +} + + +/*------------------- + Colors +--------------------*/ + +/*--- Red ---*/ +.ui.red.header { + color: @red !important; +} +a.ui.red.header:hover { + color: @redHover !important; +} +.ui.red.dividing.header { + border-bottom: @dividedColoredBorderWidth solid @red; +} + +/* Inverted */ +.ui.inverted.red.header { + color: @lightRed !important; +} +a.ui.inverted.red.header:hover { + color: @lightRedHover !important; +} + +/*--- Orange ---*/ +.ui.orange.header { + color: @orange !important; +} +a.ui.orange.header:hover { + color: @orangeHover !important; +} +.ui.orange.dividing.header { + border-bottom: @dividedColoredBorderWidth solid @orange; +} +/* Inverted */ +.ui.inverted.orange.header { + color: @lightOrange !important; +} +a.ui.inverted.orange.header:hover { + color: @lightOrangeHover !important; +} + +/*--- Olive ---*/ +.ui.olive.header { + color: @olive !important; +} +a.ui.olive.header:hover { + color: @oliveHover !important; +} +.ui.olive.dividing.header { + border-bottom: @dividedColoredBorderWidth solid @olive; +} +/* Inverted */ +.ui.inverted.olive.header { + color: @lightOlive !important; +} +a.ui.inverted.olive.header:hover { + color: @lightOliveHover !important; +} + +/*--- Yellow ---*/ +.ui.yellow.header { + color: @yellow !important; +} +a.ui.yellow.header:hover { + color: @yellowHover !important; +} +.ui.yellow.dividing.header { + border-bottom: @dividedColoredBorderWidth solid @yellow; +} +/* Inverted */ +.ui.inverted.yellow.header { + color: @lightYellow !important; +} +a.ui.inverted.yellow.header:hover { + color: @lightYellowHover !important; +} + +/*--- Green ---*/ +.ui.green.header { + color: @green !important; +} +a.ui.green.header:hover { + color: @greenHover !important; +} +.ui.green.dividing.header { + border-bottom: @dividedColoredBorderWidth solid @green; +} +/* Inverted */ +.ui.inverted.green.header { + color: @lightGreen !important; +} +a.ui.inverted.green.header:hover { + color: @lightGreenHover !important; +} + +/*--- Teal ---*/ +.ui.teal.header { + color: @teal !important; +} +a.ui.teal.header:hover { + color: @tealHover !important; +} +.ui.teal.dividing.header { + border-bottom: @dividedColoredBorderWidth solid @teal; +} +/* Inverted */ +.ui.inverted.teal.header { + color: @lightTeal !important; +} +a.ui.inverted.teal.header:hover { + color: @lightTealHover !important; +} + +/*--- Blue ---*/ +.ui.blue.header { + color: @blue !important; +} +a.ui.blue.header:hover { + color: @blueHover !important; +} +.ui.blue.dividing.header { + border-bottom: @dividedColoredBorderWidth solid @blue; +} +/* Inverted */ +.ui.inverted.blue.header { + color: @lightBlue !important; +} +a.ui.inverted.blue.header:hover { + color: @lightBlueHover !important; +} + +/*--- Violet ---*/ +.ui.violet.header { + color: @violet !important; +} +a.ui.violet.header:hover { + color: @violetHover !important; +} +.ui.violet.dividing.header { + border-bottom: @dividedColoredBorderWidth solid @violet; +} +/* Inverted */ +.ui.inverted.violet.header { + color: @lightViolet !important; +} +a.ui.inverted.violet.header:hover { + color: @lightVioletHover !important; +} + +/*--- Purple ---*/ +.ui.purple.header { + color: @purple !important; +} +a.ui.purple.header:hover { + color: @purpleHover !important; +} +.ui.purple.dividing.header { + border-bottom: @dividedColoredBorderWidth solid @purple; +} +/* Inverted */ +.ui.inverted.purple.header { + color: @lightPurple !important; +} +a.ui.inverted.purple.header:hover { + color: @lightPurpleHover !important; +} + +/*--- Pink ---*/ +.ui.pink.header { + color: @pink !important; +} +a.ui.pink.header:hover { + color: @pinkHover !important; +} +.ui.pink.dividing.header { + border-bottom: @dividedColoredBorderWidth solid @pink; +} +/* Inverted */ +.ui.inverted.pink.header { + color: @lightPink !important; +} +a.ui.inverted.pink.header:hover { + color: @lightPinkHover !important; +} + +/*--- Brown ---*/ +.ui.brown.header { + color: @brown !important; +} +a.ui.brown.header:hover { + color: @brownHover !important; +} +.ui.brown.dividing.header { + border-bottom: @dividedColoredBorderWidth solid @brown; +} +/* Inverted */ +.ui.inverted.brown.header { + color: @lightBrown !important; +} +a.ui.inverted.brown.header:hover { + color: @lightBrownHover !important; +} + +/*--- Grey ---*/ +.ui.grey.header { + color: @grey !important; +} +a.ui.grey.header:hover { + color: @greyHover !important; +} +.ui.grey.dividing.header { + border-bottom: @dividedColoredBorderWidth solid @grey; +} +/* Inverted */ +.ui.inverted.grey.header { + color: @lightGrey !important; +} +a.ui.inverted.grey.header:hover { + color: @lightGreyHover !important; +} + + +/*------------------- + Aligned +--------------------*/ + +.ui.left.aligned.header { + text-align: left; +} +.ui.right.aligned.header { + text-align: right; +} +.ui.centered.header, +.ui.center.aligned.header { + text-align: center; +} +.ui.justified.header { + text-align: justify; +} +.ui.justified.header:after { + display: inline-block; + content: ''; + width: 100%; +} + +/*------------------- + Floated +--------------------*/ + +.ui.floated.header, +.ui[class*="left floated"].header { + float: left; + margin-top: 0em; + margin-right: @floatedMargin; +} +.ui[class*="right floated"].header { + float: right; + margin-top: 0em; + margin-left: @floatedMargin; +} + +/*------------------- + Fitted +--------------------*/ + +.ui.fitted.header { + padding: 0em; +} + + +/*------------------- + Dividing +--------------------*/ + +.ui.dividing.header { + padding-bottom: @dividedBorderPadding; + border-bottom: @dividedBorder; +} +.ui.dividing.header .sub.header { + padding-bottom: @dividedSubHeaderPadding; +} +.ui.dividing.header .icon { + margin-bottom: @dividedIconPadding; +} + +.ui.inverted.dividing.header { + border-bottom-color: @invertedDividedBorderColor; +} + + +/*------------------- + Block +--------------------*/ + +.ui.block.header { + background: @blockBackground; + padding: @blockVerticalPadding @blockHorizontalPadding; + box-shadow: @blockBoxShadow; + border: @blockBorder; + border-radius: @blockBorderRadius; +} + +.ui.tiny.block.header { + font-size: @tinyBlock; +} +.ui.small.block.header { + font-size: @smallBlock; +} +.ui.block.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) { + font-size: @mediumBlock; +} +.ui.large.block.header { + font-size: @largeBlock; +} +.ui.huge.block.header { + font-size: @hugeBlock; +} + +/*------------------- + Attached +--------------------*/ + +.ui.attached.header { + background: @attachedBackground; + padding: @attachedVerticalPadding @attachedHorizontalPadding; + margin-left: @attachedOffset; + margin-right: @attachedOffset; + box-shadow: @attachedBoxShadow; + border: @attachedBorder; +} +.ui.attached.block.header { + background: @blockBackground; +} + +.ui.attached:not(.top):not(.bottom).header { + margin-top: 0em; + margin-bottom: 0em; + border-top: none; + border-radius: 0em; +} +.ui.top.attached.header { + margin-bottom: 0em; + border-radius: @attachedBorderRadius @attachedBorderRadius 0em 0em; +} +.ui.bottom.attached.header { + margin-top: 0em; + border-top: none; + border-radius: 0em 0em @attachedBorderRadius @attachedBorderRadius; +} + +/* Attached Sizes */ +.ui.tiny.attached.header { + font-size: @tinyAttachedSize; +} +.ui.small.attached.header { + font-size: @smallAttachedSize; +} +.ui.attached.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) { + font-size: @mediumAttachedSize; +} +.ui.large.attached.header { + font-size: @largeAttachedSize; +} +.ui.huge.attached.header { + font-size: @hugeAttachedSize; +} + +/*------------------- + Sizing +--------------------*/ + +.ui.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) { + font-size: @mediumFontSize; +} + +.loadUIOverrides(); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/icon.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/icon.less new file mode 100644 index 00000000..4444e523 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/icon.less @@ -0,0 +1,505 @@ +/*! + * # Semantic UI - Icon + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + + +/******************************* + Theme +*******************************/ + +@type : 'element'; +@element : 'icon'; + +@import (multiple) '../../theme.config'; + + +/******************************* + Icon +*******************************/ + +@font-face { + font-family: 'Icons'; + src: @fallbackSRC; + src: @src; + font-style: normal; + font-weight: @normal; + font-variant: normal; + text-decoration: inherit; + text-transform: none; +} + +i.icon { + display: inline-block; + opacity: @opacity; + + margin: 0em @distanceFromText 0em 0em; + + width: @width; + height: @height; + + font-family: 'Icons'; + font-style: normal; + font-weight: @normal; + text-decoration: inherit; + text-align: center; + + speak: none; + font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + backface-visibility: hidden; +} + +i.icon:before { + background: none !important; +} + +/******************************* + Types +*******************************/ + +/*-------------- + Loading +---------------*/ + +i.icon.loading { + height: 1em; + line-height: 1; +} + +i.icon.loading { + animation: icon-loading @loadingDuration linear infinite; +} + +@keyframes icon-loading { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +/******************************* + States +*******************************/ + +i.icon.hover { + opacity: 1 !important; +} + +i.icon.active { + opacity: 1 !important; +} + +i.emphasized.icon { + opacity: 1 !important; +} + +i.disabled.icon { + opacity: @disabledOpacity !important; +} + + +/******************************* + Variations +*******************************/ + + +/*------------------- + Fitted +--------------------*/ + +i.fitted.icon { + width: auto; + margin: 0em !important; +} + +/*------------------- + Link +--------------------*/ + +i.link.icon, i.link.icons { + cursor: pointer; + opacity: @linkOpacity; + transition: opacity @defaultDuration @defaultEasing; +} +i.link.icon:hover, i.link.icons:hover { + opacity: 1 !important; +} + +/*------------------- + Circular +--------------------*/ + +i.circular.icon { + border-radius: 500em !important; + line-height: 1 !important; + + padding: @circularPadding !important; + box-shadow: @circularShadow; + + width: @circularSize !important; + height: @circularSize !important; +} +i.circular.inverted.icon { + border: none; + box-shadow: none; +} + +/*------------------- + Flipped +--------------------*/ + +i.flipped.icon, +i.horizontally.flipped.icon { + transform: scale(-1, 1); +} +i.vertically.flipped.icon { + transform: scale(1, -1); +} + +/*------------------- + Rotated +--------------------*/ + +i.rotated.icon, +i.right.rotated.icon, +i.clockwise.rotated.icon { + transform: rotate(90deg); +} + +i.left.rotated.icon, +i.counterclockwise.rotated.icon { + transform: rotate(-90deg); +} + +/*------------------- + Bordered +--------------------*/ + +i.bordered.icon { + line-height: 1; + vertical-align: baseline; + + width: @borderedSize; + height: @borderedSize; + padding: @borderedVerticalPadding @borderedHorizontalPadding !important; + box-shadow: @borderedShadow; +} +i.bordered.inverted.icon { + border: none; + box-shadow: none; +} + +/*------------------- + Inverted +--------------------*/ + +/* Inverted Shapes */ +i.inverted.bordered.icon, +i.inverted.circular.icon { + background-color: @black !important; + color: @white !important; +} + +i.inverted.icon { + color: @white; +} + + +/*------------------- + Colors +--------------------*/ + +/* Red */ +i.red.icon { + color: @red !important; +} +i.inverted.red.icon { + color: @lightRed !important; +} +i.inverted.bordered.red.icon, +i.inverted.circular.red.icon { + background-color: @red !important; + color: @white !important; +} + +/* Orange */ +i.orange.icon { + color: @orange !important; +} +i.inverted.orange.icon { + color: @lightOrange !important; +} +i.inverted.bordered.orange.icon, +i.inverted.circular.orange.icon { + background-color: @orange !important; + color: @white !important; +} + +/* Yellow */ +i.yellow.icon { + color: @yellow !important; +} +i.inverted.yellow.icon { + color: @lightYellow !important; +} +i.inverted.bordered.yellow.icon, +i.inverted.circular.yellow.icon { + background-color: @yellow !important; + color: @white !important; +} + +/* Olive */ +i.olive.icon { + color: @olive !important; +} +i.inverted.olive.icon { + color: @lightOlive !important; +} +i.inverted.bordered.olive.icon, +i.inverted.circular.olive.icon { + background-color: @olive !important; + color: @white !important; +} + +/* Green */ +i.green.icon { + color: @green !important; +} +i.inverted.green.icon { + color: @lightGreen !important; +} +i.inverted.bordered.green.icon, +i.inverted.circular.green.icon { + background-color: @green !important; + color: @white !important; +} + +/* Teal */ +i.teal.icon { + color: @teal !important; +} +i.inverted.teal.icon { + color: @lightTeal !important; +} +i.inverted.bordered.teal.icon, +i.inverted.circular.teal.icon { + background-color: @teal !important; + color: @white !important; +} + +/* Blue */ +i.blue.icon { + color: @blue !important; +} +i.inverted.blue.icon { + color: @lightBlue !important; +} +i.inverted.bordered.blue.icon, +i.inverted.circular.blue.icon { + background-color: @blue !important; + color: @white !important; +} + +/* Violet */ +i.violet.icon { + color: @violet !important; +} +i.inverted.violet.icon { + color: @lightViolet !important; +} +i.inverted.bordered.violet.icon, +i.inverted.circular.violet.icon { + background-color: @violet !important; + color: @white !important; +} + +/* Purple */ +i.purple.icon { + color: @purple !important; +} +i.inverted.purple.icon { + color: @lightPurple !important; +} +i.inverted.bordered.purple.icon, +i.inverted.circular.purple.icon { + background-color: @purple !important; + color: @white !important; +} + +/* Pink */ +i.pink.icon { + color: @pink !important; +} +i.inverted.pink.icon { + color: @lightPink !important; +} +i.inverted.bordered.pink.icon, +i.inverted.circular.pink.icon { + background-color: @pink !important; + color: @white !important; +} + +/* Brown */ +i.brown.icon { + color: @brown !important; +} +i.inverted.brown.icon { + color: @lightBrown !important; +} +i.inverted.bordered.brown.icon, +i.inverted.circular.brown.icon { + background-color: @brown !important; + color: @white !important; +} + +/* Grey */ +i.grey.icon { + color: @grey !important; +} +i.inverted.grey.icon { + color: @lightGrey !important; +} +i.inverted.bordered.grey.icon, +i.inverted.circular.grey.icon { + background-color: @grey !important; + color: @white !important; +} + +/* Black */ +i.black.icon { + color: @black !important; +} +i.inverted.black.icon { + color: @lightBlack !important; +} +i.inverted.bordered.black.icon, +i.inverted.circular.black.icon { + background-color: @black !important; + color: @white !important; +} + +/*------------------- + Sizes +--------------------*/ + +i.mini.icon, +i.mini.icons { + line-height: 1; + font-size: @mini; +} +i.tiny.icon, +i.tiny.icons { + line-height: 1; + font-size: @tiny; +} +i.small.icon, +i.small.icons { + line-height: 1; + font-size: @small; +} +i.icon, +i.icons { + font-size: @medium; +} +i.large.icon, +i.large.icons { + line-height: 1; + vertical-align: middle; + font-size: @large; +} +i.big.icon, +i.big.icons { + line-height: 1; + vertical-align: middle; + font-size: @big; +} +i.huge.icon, +i.huge.icons { + line-height: 1; + vertical-align: middle; + font-size: @huge; +} +i.massive.icon, +i.massive.icons { + line-height: 1; + vertical-align: middle; + font-size: @massive; +} + +/******************************* + Groups +*******************************/ + +i.icons { + display: inline-block; + position: relative; + line-height: 1; +} + +i.icons .icon { + position: absolute; + top: 50%; + left: 50%; + transform: translateX(-50%) translateY(-50%); + margin: 0em; + margin: 0; +} + +i.icons .icon:first-child { + position: static; + width: auto; + height: auto; + vertical-align: top; + transform: none; + margin-right: @distanceFromText; +} + +/* Corner Icon */ +i.icons .corner.icon { + top: auto; + left: auto; + right: 0; + bottom: 0; + transform: none; + font-size: @cornerIconSize; + text-shadow: @cornerIconShadow; +} +i.icons .top.right.corner.icon { + top: 0; + left: auto; + right: 0; + bottom: auto; +} +i.icons .top.left.corner.icon { + top: 0; + left: 0; + right: auto; + bottom: auto; +} +i.icons .bottom.left.corner.icon { + top: auto; + left: 0; + right: auto; + bottom: 0; +} +i.icons .bottom.right.corner.icon { + top: auto; + left: auto; + right: 0; + bottom: 0; +} + +i.icons .inverted.corner.icon { + text-shadow: @cornerIconInvertedShadow; +} + +.loadUIOverrides(); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/image.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/image.less new file mode 100644 index 00000000..03db0f2b --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/image.less @@ -0,0 +1,328 @@ +/*! + * # Semantic UI - Image + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + + +/******************************* + Theme +*******************************/ + +@type : 'element'; +@element : 'image'; + +@import (multiple) '../../theme.config'; + + +/******************************* + Image +*******************************/ + +.ui.image { + position: relative; + display: inline-block; + vertical-align: middle; + max-width: 100%; + background-color: @placeholderColor; +} + +img.ui.image { + display: block; +} + +.ui.image svg, +.ui.image img { + display: block; + max-width: 100%; + height: auto; +} + + +/******************************* + States +*******************************/ + +.ui.hidden.images, +.ui.hidden.image { + display: none; +} +.ui.hidden.transition.images, +.ui.hidden.transition.image { + display: block; + visibility: hidden; +} +.ui.images > .hidden.transition { + display: inline-block; + visibility: hidden; +} + + +.ui.disabled.images, +.ui.disabled.image { + cursor: default; + opacity: @disabledOpacity; +} + + +/******************************* + Variations +*******************************/ + + +/*-------------- + Inline +---------------*/ + +.ui.inline.image, +.ui.inline.image svg, +.ui.inline.image img { + display: inline-block; +} + +/*------------------ + Vertical Aligned +-------------------*/ + +.ui.top.aligned.images .image, +.ui.top.aligned.image, +.ui.top.aligned.image svg, +.ui.top.aligned.image img { + display: inline-block; + vertical-align: top; +} +.ui.middle.aligned.images .image, +.ui.middle.aligned.image, +.ui.middle.aligned.image svg, +.ui.middle.aligned.image img { + display: inline-block; + vertical-align: middle; +} +.ui.bottom.aligned.images .image, +.ui.bottom.aligned.image, +.ui.bottom.aligned.image svg, +.ui.bottom.aligned.image img { + display: inline-block; + vertical-align: bottom; +} + +/*-------------- + Rounded +---------------*/ + +.ui.rounded.images .image, +.ui.rounded.image, +.ui.rounded.images .image > *, +.ui.rounded.image > * { + border-radius: @roundedBorderRadius; +} + +/*-------------- + Bordered +---------------*/ + +.ui.bordered.images .image, +.ui.bordered.images img, +.ui.bordered.images svg, +.ui.bordered.image img, +.ui.bordered.image svg, +img.ui.bordered.image { + border: @imageBorder; +} + +/*-------------- + Circular +---------------*/ + +.ui.circular.images, +.ui.circular.image { + overflow: hidden; +} + +.ui.circular.images .image, +.ui.circular.image, +.ui.circular.images .image > *, +.ui.circular.image > * { + -webkit-border-radius: @circularRadius; + -moz-border-radius: @circularRadius; + border-radius: @circularRadius; +} + +/*-------------- + Fluid +---------------*/ + +.ui.fluid.images, +.ui.fluid.image, +.ui.fluid.images img, +.ui.fluid.images svg, +.ui.fluid.image svg, +.ui.fluid.image img { + display: block; + width: 100%; + height: auto; +} + + +/*-------------- + Avatar +---------------*/ + +.ui.avatar.images .image, +.ui.avatar.images img, +.ui.avatar.images svg, +.ui.avatar.image img, +.ui.avatar.image svg, +.ui.avatar.image { + margin-right: @avatarMargin; + + display: inline-block; + width: @avatarSize; + height: @avatarSize; + + -webkit-border-radius: @circularRadius; + -moz-border-radius: @circularRadius; + border-radius: @circularRadius; +} + +/*------------------- + Spaced +--------------------*/ + +.ui.spaced.image { + display: inline-block !important; + margin-left: @spacedDistance; + margin-right: @spacedDistance; +} + +.ui[class*="left spaced"].image { + margin-left: @spacedDistance; + margin-right: 0em; +} + +.ui[class*="right spaced"].image { + margin-left: 0em; + margin-right: @spacedDistance; +} + +/*------------------- + Floated +--------------------*/ + +.ui.floated.image, +.ui.floated.images { + float: left; + margin-right: @floatedHorizontalMargin; + margin-bottom: @floatedVerticalMargin; +} +.ui.right.floated.images, +.ui.right.floated.image { + float: right; + margin-right: 0em; + margin-bottom: @floatedVerticalMargin; + margin-left: @floatedHorizontalMargin; +} + +.ui.floated.images:last-child, +.ui.floated.image:last-child { + margin-bottom: 0em; +} + + +.ui.centered.images, +.ui.centered.image { + margin-left: auto; + margin-right: auto; +} + +/*-------------- + Sizes +---------------*/ + +.ui.mini.images .image, +.ui.mini.images img, +.ui.mini.images svg, +.ui.mini.image { + width: @miniWidth; + height: auto; + font-size: @mini; +} +.ui.tiny.images .image, +.ui.tiny.images img, +.ui.tiny.images svg, +.ui.tiny.image { + width: @tinyWidth; + height: auto; + font-size: @tiny; +} +.ui.small.images .image, +.ui.small.images img, +.ui.small.images svg, +.ui.small.image { + width: @smallWidth; + height: auto; + font-size: @small; +} +.ui.medium.images .image, +.ui.medium.images img, +.ui.medium.images svg, +.ui.medium.image { + width: @mediumWidth; + height: auto; + font-size: @medium; +} +.ui.large.images .image, +.ui.large.images img, +.ui.large.images svg, +.ui.large.image { + width: @largeWidth; + height: auto; + font-size: @large; +} +.ui.big.images .image, +.ui.big.images img, +.ui.big.images svg, +.ui.big.image { + width: @bigWidth; + height: auto; + font-size: @big; +} +.ui.huge.images .image, +.ui.huge.images img, +.ui.huge.images svg, +.ui.huge.image { + width: @hugeWidth; + height: auto; + font-size: @huge; +} +.ui.massive.images .image, +.ui.massive.images img, +.ui.massive.images svg, +.ui.massive.image { + width: @massiveWidth; + height: auto; + font-size: @massive; +} + + +/******************************* + Groups +*******************************/ + +.ui.images { + font-size: 0em; + margin: 0em -@imageHorizontalMargin 0rem; +} + +.ui.images .image, +.ui.images > img, +.ui.images > svg { + display: inline-block; + margin: 0em @imageHorizontalMargin @imageVerticalMargin; +} + +.loadUIOverrides(); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/input.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/input.less new file mode 100644 index 00000000..22d439f1 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/input.less @@ -0,0 +1,508 @@ +/*! + * # Semantic UI - Input + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Theme +*******************************/ + +@type : 'element'; +@element : 'input'; + +@import (multiple) '../../theme.config'; + + +/******************************* + Standard +*******************************/ + + +/*-------------------- + Inputs +---------------------*/ + +.ui.input { + position: relative; + font-weight: @normal; + font-style: normal; + display: inline-flex; + color: @inputColor; +} +.ui.input > input { + margin: 0em; + max-width: 100%; + flex: 1 0 auto; + outline: none; + -webkit-tap-highlight-color: rgba(255, 255, 255, 0); + text-align: @textAlign; + line-height: @lineHeight; + + font-family: @inputFont; + padding: @padding; + + background: @background; + border: @border; + color: @inputColor; + border-radius: @borderRadius; + transition: @transition; + + box-shadow: @boxShadow; +} + + +/*-------------------- + Placeholder +---------------------*/ + +/* browsers require these rules separate */ + +.ui.input > input::-webkit-input-placeholder { + color: @placeholderColor; +} +.ui.input > input::-moz-placeholder { + color: @placeholderColor; +} +.ui.input > input:-ms-input-placeholder { + color: @placeholderColor; +} + + +/******************************* + States +*******************************/ + +/*-------------------- + Disabled +---------------------*/ + +.ui.disabled.input, +.ui.input:not(.disabled) input[disabled] { + opacity: @disabledOpacity; +} + +.ui.disabled.input > input, +.ui.input:not(.disabled) input[disabled] { + pointer-events: none; +} + +/*-------------------- + Active +---------------------*/ + +.ui.input > input:active, +.ui.input.down input { + border-color: @downBorderColor; + background: @downBackground; + color: @downColor; + box-shadow: @downBoxShadow; +} + +/*-------------------- + Loading +---------------------*/ + +.ui.loading.loading.input > i.icon:before { + position: absolute; + content: ''; + top: 50%; + left: 50%; + + margin: @loaderMargin; + width: @loaderSize; + height: @loaderSize; + + border-radius: @circularRadius; + border: @loaderLineWidth solid @loaderFillColor; +} +.ui.loading.loading.input > i.icon:after { + position: absolute; + content: ''; + top: 50%; + left: 50%; + + margin: @loaderMargin; + width: @loaderSize; + height: @loaderSize; + + animation: button-spin @loaderSpeed linear; + animation-iteration-count: infinite; + + border-radius: @circularRadius; + + border-color: @loaderLineColor transparent transparent; + border-style: solid; + border-width: @loaderLineWidth; + + box-shadow: 0px 0px 0px 1px transparent; +} + + +/*-------------------- + Focus +---------------------*/ + +.ui.input.focus > input, +.ui.input > input:focus { + border-color: @focusBorderColor; + background: @focusBackground; + color: @focusColor; + box-shadow: @focusBoxShadow; +} +.ui.input.focus > input::-webkit-input-placeholder, +.ui.input > input:focus::-webkit-input-placeholder { + color: @placeholderFocusColor; +} +.ui.input.focus > input::-moz-placeholder, +.ui.input > input:focus::-moz-placeholder { + color: @placeholderFocusColor; +} +.ui.input.focus > input:-ms-input-placeholder, +.ui.input > input:focus:-ms-input-placeholder { + color: @placeholderFocusColor; +} + + + +/*-------------------- + Error +---------------------*/ + +.ui.input.error > input { + background-color: @errorBackground; + border-color: @errorBorder; + color: @errorColor; + box-shadow: @errorBoxShadow; +} + +/* Error Placeholder */ +.ui.input.error > input::-webkit-input-placeholder { + color: @placeholderErrorColor; +} +.ui.input.error > input::-moz-placeholder { + color: @placeholderErrorColor; +} +.ui.input.error > input:-ms-input-placeholder { + color: @placeholderErrorColor !important; +} + +/* Focused Error Placeholder */ +.ui.input.error > input:focus::-webkit-input-placeholder { + color: @placeholderErrorFocusColor; +} +.ui.input.error > input:focus::-moz-placeholder { + color: @placeholderErrorFocusColor; +} +.ui.input.error > input:focus:-ms-input-placeholder { + color: @placeholderErrorFocusColor !important; +} + +/******************************* + Variations +*******************************/ + +/*-------------------- + Transparent +---------------------*/ + + +.ui.transparent.input > input { + border-color: transparent !important; + background-color: transparent !important; + padding: 0em !important; + box-shadow: none !important; + border-radius: 0px !important; +} + +/* Transparent Icon */ +.ui.transparent.icon.input > i.icon { + width: @transparentIconWidth; +} +.ui.transparent.icon.input > input { + padding-left: 0em !important; + padding-right: @transparentIconMargin !important; +} +.ui.transparent[class*="left icon"].input > input { + padding-left: @transparentIconMargin !important; + padding-right: 0em !important; +} + +/* Transparent Inverted */ +.ui.transparent.inverted.input { + color: @transparentInvertedColor; +} +.ui.transparent.inverted.input > input { + color: inherit; +} + +.ui.transparent.inverted.input > input::-webkit-input-placeholder { + color: @transparentInvertedPlaceholderColor; +} +.ui.transparent.inverted.input > input::-moz-placeholder { + color: @transparentInvertedPlaceholderColor; +} +.ui.transparent.inverted.input > input:-ms-input-placeholder { + color: @transparentInvertedPlaceholderColor; +} + + +/*-------------------- + Icon +---------------------*/ + +.ui.icon.input > i.icon { + cursor: default; + position: absolute; + line-height: 1; + text-align: center; + top: 0px; + right: 0px; + margin: 0em; + height: 100%; + + width: @iconWidth; + opacity: @iconOpacity; + border-radius: 0em @borderRadius @borderRadius 0em; + transition: @iconTransition; +} +.ui.icon.input > i.icon:not(.link) { + pointer-events: none; +} +.ui.icon.input > input { + padding-right: @iconMargin !important; +} + +.ui.icon.input > i.icon:before, +.ui.icon.input > i.icon:after { + left: 0; + position: absolute; + text-align: center; + top: 50%; + width: 100%; + margin-top: @iconOffset; +} +.ui.icon.input > i.link.icon { + cursor: pointer; +} +.ui.icon.input > i.circular.icon { + top: @circularIconVerticalOffset; + right: @circularIconHorizontalOffset; +} + +/* Left Icon Input */ +.ui[class*="left icon"].input > i.icon { + right: auto; + left: @borderWidth; + border-radius: @borderRadius 0em 0em @borderRadius; +} +.ui[class*="left icon"].input > i.circular.icon { + right: auto; + left: @circularIconHorizontalOffset; +} +.ui[class*="left icon"].input > input { + padding-left: @iconMargin !important; + padding-right: @horizontalPadding !important; +} + +/* Focus */ +.ui.icon.input > input:focus ~ i.icon { + opacity: 1; +} + +/*-------------------- + Labeled +---------------------*/ + +/* Adjacent Label */ +.ui.labeled.input > .label { + flex: 0 0 auto; + margin: 0; + font-size: @relativeMedium; +} +.ui.labeled.input > .label:not(.corner) { + padding-top: @verticalPadding; + padding-bottom: @verticalPadding; +} + +/* Regular Label on Left */ +.ui.labeled.input:not([class*="corner labeled"]) .label:first-child { + border-top-right-radius: 0px; + border-bottom-right-radius: 0px; +} +.ui.labeled.input:not([class*="corner labeled"]) .label:first-child + input { + border-top-left-radius: 0px; + border-bottom-left-radius: 0px; + border-left-color: transparent; +} +.ui.labeled.input:not([class*="corner labeled"]) .label:first-child + input:focus { + border-left-color: @focusBorderColor; +} + +/* Regular Label on Right */ +.ui[class*="right labeled"].input > input { + border-top-right-radius: 0px !important; + border-bottom-right-radius: 0px !important; + border-right-color: transparent !important; +} +.ui[class*="right labeled"].input > input + .label { + border-top-left-radius: 0px; + border-bottom-left-radius: 0px; +} + +.ui[class*="right labeled"].input > input:focus { + border-right-color: @focusBorderColor !important; +} + +/* Corner Label */ +.ui.labeled.input .corner.label { + top: @labelCornerTop; + right: @labelCornerRight; + font-size: @labelCornerSize; + border-radius: 0em @borderRadius 0em 0em; +} + +/* Spacing with corner label */ +.ui[class*="corner labeled"]:not([class*="left corner labeled"]).labeled.input > input { + padding-right: @labeledMargin !important; +} +.ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"]) > input { + padding-right: @labeledIconInputMargin !important; +} +.ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"]) > .icon { + margin-right: @labeledIconMargin; +} + +/* Left Labeled */ +.ui[class*="left corner labeled"].labeled.input > input { + padding-left: @labeledMargin !important; +} +.ui[class*="left corner labeled"].icon.input > input { + padding-left: @labeledIconInputMargin !important; +} +.ui[class*="left corner labeled"].icon.input > .icon { + margin-left: @labeledIconMargin; +} + +/* Corner Label Position */ +.ui.input > .ui.corner.label { + top: @borderWidth; + right: @borderWidth; +} +.ui.input > .ui.left.corner.label { + right: auto; + left: @borderWidth; +} + + +/*-------------------- + Action +---------------------*/ + +.ui.action.input > .button, +.ui.action.input > .buttons { + display: flex; + align-items: center; + flex: 0 0 auto; +} +.ui.action.input > .button, +.ui.action.input > .buttons > .button { + padding-top: @verticalPadding; + padding-bottom: @verticalPadding; + margin: 0; +} + +/* Button on Right */ +.ui.action.input:not([class*="left action"]) > input { + border-top-right-radius: 0px !important; + border-bottom-right-radius: 0px !important; + border-right-color: transparent !important; +} +.ui.action.input:not([class*="left action"]) > .dropdown:not(:first-child), +.ui.action.input:not([class*="left action"]) > .button:not(:first-child), +.ui.action.input:not([class*="left action"]) > .buttons:not(:first-child) > .button { + border-radius: 0px; +} +.ui.action.input:not([class*="left action"]) > .dropdown:last-child, +.ui.action.input:not([class*="left action"]) > .button:last-child, +.ui.action.input:not([class*="left action"]) > .buttons:last-child > .button { + border-radius: 0px @borderRadius @borderRadius 0px; +} + +/* Input Focus */ +.ui.action.input:not([class*="left action"]) > input:focus { + border-right-color: @focusBorderColor !important; +} + +/* Button on Left */ +.ui[class*="left action"].input > input { + border-top-left-radius: 0px !important; + border-bottom-left-radius: 0px !important; + border-left-color: transparent !important; +} +.ui[class*="left action"].input > .dropdown, +.ui[class*="left action"].input > .button, +.ui[class*="left action"].input > .buttons > .button { + border-radius: 0px; +} +.ui[class*="left action"].input > .dropdown:first-child, +.ui[class*="left action"].input > .button:first-child, +.ui[class*="left action"].input > .buttons:first-child > .button { + border-radius: @borderRadius 0px 0px @borderRadius; +} +/* Input Focus */ +.ui[class*="left action"].input > input:focus { + border-left-color: @focusBorderColor !important; +} + +/*-------------------- + Inverted +---------------------*/ + +/* Standard */ +.ui.inverted.input > input { + border: none; +} + +/*-------------------- + Fluid +---------------------*/ + +.ui.fluid.input { + display: flex; +} +.ui.fluid.input > input { + width: 0px !important; +} + +/*-------------------- + Size +---------------------*/ + +.ui.mini.input { + font-size: @relativeMini; +} +.ui.small.input { + font-size: @relativeSmall; +} +.ui.input { + font-size: @relativeMedium; +} +.ui.large.input { + font-size: @relativeLarge; +} +.ui.big.input { + font-size: @relativeBig; +} +.ui.huge.input { + font-size: @relativeHuge; +} +.ui.massive.input { + font-size: @relativeMassive; +} + +.loadUIOverrides(); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/label.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/label.less new file mode 100644 index 00000000..78693058 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/label.less @@ -0,0 +1,1258 @@ +/*! + * # Semantic UI - Label + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + + +/******************************* + Theme +*******************************/ + +@type : 'element'; +@element : 'label'; + +@import (multiple) '../../theme.config'; + +/******************************* + Label +*******************************/ + +.ui.label { + display: inline-block; + line-height: 1; + vertical-align: @verticalAlign; + + margin: @verticalMargin @horizontalMargin; + + background-color: @backgroundColor; + background-image: @backgroundImage; + padding: @verticalPadding @horizontalPadding; + color: @color; + + text-transform: @textTransform; + font-weight: @fontWeight; + + border: @border; + border-radius: @borderRadius; + transition: @transition; +} + +.ui.label:first-child { + margin-left: 0em; +} +.ui.label:last-child { + margin-right: 0em; +} + +/* Link */ +a.ui.label { + cursor: pointer; +} + +/* Inside Link */ +.ui.label > a { + cursor: pointer; + color: inherit; + opacity: @linkOpacity; + transition: @linkTransition; +} +.ui.label > a:hover { + opacity: 1; +} + +/* Image */ +.ui.label > img { + width: auto !important; + vertical-align: middle; + height: @imageHeight !important; +} + +/* Icon */ +.ui.label > .icon { + width: auto; + margin: 0em @iconDistance 0em 0em; +} + +/* Detail */ +.ui.label > .detail { + display: inline-block; + vertical-align: top; + font-weight: @detailFontWeight; + margin-left: @detailMargin; + opacity: @detailOpacity; +} +.ui.label > .detail .icon { + margin: 0em @detailIconDistance 0em 0em; +} + + +/* Removable label */ +.ui.label > .close.icon, +.ui.label > .delete.icon { + cursor: pointer; + margin-right: 0em; + margin-left: @deleteMargin; + font-size: @deleteSize; + opacity: @deleteOpacity; + transition: @deleteTransition; +} +.ui.label > .delete.icon:hover { + opacity: 1; +} + +/*------------------- + Group +--------------------*/ + +.ui.labels > .label { + margin: 0em @groupHorizontalMargin @groupVerticalMargin 0em; +} + + +/*------------------- + Coupling +--------------------*/ + +.ui.header > .ui.label { + margin-top: @lineHeightOffset; +} + + +/* Remove border radius on attached segment */ +.ui.attached.segment > .ui.top.left.attached.label, +.ui.bottom.attached.segment > .ui.top.left.attached.label { + border-top-left-radius: 0; +} +.ui.attached.segment > .ui.top.right.attached.label, +.ui.bottom.attached.segment > .ui.top.right.attached.label { + border-top-right-radius: 0; +} +.ui.top.attached.segment > .ui.bottom.left.attached.label { + border-bottom-left-radius: 0; +} +.ui.top.attached.segment > .ui.bottom.right.attached.label { + border-bottom-right-radius: 0; +} + +/* Padding on next content after a label */ +.ui.top.attached.label:first-child + :not(.attached), +.ui.top.attached.label + [class*="right floated"] + * { + margin-top: @attachedSegmentPadding !important; +} +.ui.bottom.attached.label:first-child ~ :last-child:not(.attached) { + margin-top: 0em; + margin-bottom: @attachedSegmentPadding !important; +} + + +/******************************* + Types +*******************************/ + +.ui.image.label { + width: auto !important; + margin-top: 0em; + margin-bottom: 0em; + max-width: 9999px; + vertical-align: baseline; + text-transform: none; + + background: @imageLabelBackground; + padding: @imageLabelPadding; + border-radius: @imageLabelBorderRadius; + box-shadow: @imageLabelBoxShadow; +} + +.ui.image.label img { + display: inline-block; + vertical-align: top; + + height: @imageLabelImageHeight; + margin: @imageLabelImageMargin; + border-radius: @imageLabelImageBorderRadius; +} + +.ui.image.label .detail { + background: @imageLabelDetailBackground; + margin: @imageLabelDetailMargin; + padding: @imageLabelDetailPadding; + border-radius: 0em @imageLabelBorderRadius @imageLabelBorderRadius 0em; +} + +/*------------------- + Tag +--------------------*/ + +.ui.tag.labels .label, +.ui.tag.label { + margin-left: 1em; + position: relative; + padding-left: @tagHorizontalPadding; + padding-right: @tagHorizontalPadding; + + border-radius: 0em @borderRadius @borderRadius 0em; + transition: @tagTransition; +} +.ui.tag.labels .label:before, +.ui.tag.label:before { + position: absolute; + transform: translateY(-50%) translateX(50%) rotate(-45deg); + + top: @tagTriangleTopOffset; + right: @tagTriangleRightOffset; + content: ''; + + background-color: inherit; + background-image: @tagTriangleBackgroundImage; + + width: @tagTriangleSize; + height: @tagTriangleSize; + transition: @tagTransition; +} + + +.ui.tag.labels .label:after, +.ui.tag.label:after { + position: absolute; + content: ''; + top: 50%; + left: -(@tagCircleSize / 2); + + margin-top: -(@tagCircleSize / 2); + background-color: @tagCircleColor !important; + width: @tagCircleSize; + height: @tagCircleSize; + + box-shadow: @tagCircleBoxShadow; + border-radius: @circularRadius; +} + + +/*------------------- + Corner Label +--------------------*/ + +.ui.corner.label { + position: absolute; + top: 0em; + right: 0em; + margin: 0em; + padding: 0em; + text-align: center; + + border-color: @backgroundColor; + + width: @cornerTriangleSize; + height: @cornerTriangleSize; + z-index: @cornerTriangleZIndex; + transition: @cornerTriangleTransition; +} + +/* Icon Label */ +.ui.corner.label{ + background-color: transparent !important; +} +.ui.corner.label:after { + position: absolute; + content: ""; + right: 0em; + top: 0em; + z-index: -1; + + width: 0em; + height: 0em; + background-color: transparent !important; + + border-top: 0em solid transparent; + border-right: @cornerTriangleSize solid transparent; + border-bottom: @cornerTriangleSize solid transparent; + border-left: 0em solid transparent; + + border-right-color: inherit; + transition: @cornerTriangleTransition; +} + +.ui.corner.label .icon { + cursor: default; + position: relative; + top: @cornerIconTopOffset; + left: @cornerIconLeftOffset; + font-size: @cornerIconSize; + margin: 0em; +} + +/* Left Corner */ +.ui.left.corner.label, +.ui.left.corner.label:after { + right: auto; + left: 0em; +} +.ui.left.corner.label:after { + border-top: @cornerTriangleSize solid transparent; + border-right: @cornerTriangleSize solid transparent; + border-bottom: 0em solid transparent; + border-left: 0em solid transparent; + + border-top-color: inherit; +} +.ui.left.corner.label .icon { + left: -@cornerIconLeftOffset; +} + +/* Segment */ +.ui.segment > .ui.corner.label { + top: -1px; + right: -1px; +} +.ui.segment > .ui.left.corner.label { + right: auto; + left: -1px; +} + +/*------------------- + Ribbon +--------------------*/ + +.ui.ribbon.label { + position: relative; + margin: 0em; + min-width: max-content; + border-radius: 0em @borderRadius @borderRadius 0em; + border-color: @ribbonShadowColor; +} + +.ui.ribbon.label:after { + position: absolute; + content: ''; + + top: 100%; + left: 0%; + background-color: transparent !important; + + border-style: solid; + border-width: 0em @ribbonTriangleSize @ribbonTriangleSize 0em; + border-color: transparent; + border-right-color: inherit; + + width: 0em; + height: 0em; +} +/* Positioning */ +.ui.ribbon.label { + left: @ribbonOffset; + margin-right: -@ribbonTriangleSize; + padding-left: @ribbonDistance; + padding-right: @ribbonTriangleSize; +} +.ui[class*="right ribbon"].label { + left: @rightRibbonOffset; + padding-left: @ribbonTriangleSize; + padding-right: @ribbonDistance; +} + +/* Right Ribbon */ +.ui[class*="right ribbon"].label { + text-align: left; + transform: translateX(-100%); + border-radius: @borderRadius 0em 0em @borderRadius; +} +.ui[class*="right ribbon"].label:after { + left: auto; + right: 0%; + + border-style: solid; + border-width: @ribbonTriangleSize @ribbonTriangleSize 0em 0em; + border-color: transparent; + border-top-color: inherit; +} + +/* Inside Table */ +.ui.image > .ribbon.label, +.ui.card .image > .ribbon.label { + position: absolute; + top: @ribbonImageTopDistance; +} +.ui.card .image > .ui.ribbon.label, +.ui.image > .ui.ribbon.label { + left: @ribbonImageOffset; +} +.ui.card .image > .ui[class*="right ribbon"].label, +.ui.image > .ui[class*="right ribbon"].label { + left: @rightRibbonImageOffset; + padding-left: @horizontalPadding; +} + +/* Inside Table */ +.ui.table td > .ui.ribbon.label { + left: @ribbonTableOffset; +} +.ui.table td > .ui[class*="right ribbon"].label { + left: @rightRibbonTableOffset; + padding-left: @horizontalPadding; +} + + +/*------------------- + Attached +--------------------*/ + +.ui[class*="top attached"].label, +.ui.attached.label { + width: 100%; + position: absolute; + margin: 0em; + top: 0em; + left: 0em; + + padding: @attachedVerticalPadding @attachedHorizontalPadding; + + border-radius: @attachedCornerBorderRadius @attachedCornerBorderRadius 0em 0em; +} +.ui[class*="bottom attached"].label { + top: auto; + bottom: 0em; + border-radius: 0em 0em @attachedCornerBorderRadius @attachedCornerBorderRadius; +} + +.ui[class*="top left attached"].label { + width: auto; + margin-top: 0em !important; + border-radius: @attachedCornerBorderRadius 0em @attachedBorderRadius 0em; +} + +.ui[class*="top right attached"].label { + width: auto; + left: auto; + right: 0em; + border-radius: 0em @attachedCornerBorderRadius 0em @attachedBorderRadius; +} +.ui[class*="bottom left attached"].label { + width: auto; + top: auto; + bottom: 0em; + border-radius: 0em @attachedBorderRadius 0em @attachedCornerBorderRadius; +} +.ui[class*="bottom right attached"].label { + top: auto; + bottom: 0em; + left: auto; + right: 0em; + width: auto; + border-radius: @attachedBorderRadius 0em @attachedCornerBorderRadius 0em; +} + + +/******************************* + States +*******************************/ + +/*------------------- + Disabled +--------------------*/ + +.ui.label.disabled { + opacity: 0.5; +} + +/*------------------- + Hover +--------------------*/ + +a.ui.labels .label:hover, +a.ui.label:hover { + background-color: @labelHoverBackgroundColor; + border-color: @labelHoverBackgroundColor; + + background-image: @labelHoverBackgroundImage; + color: @labelHoverTextColor; +} +.ui.labels a.label:hover:before, +a.ui.label:hover:before { + color: @labelHoverTextColor; +} + +/*------------------- + Active +--------------------*/ + +.ui.active.label { + background-color: @labelActiveBackgroundColor; + border-color: @labelActiveBackgroundColor; + + background-image: @labelActiveBackgroundImage; + color: @labelActiveTextColor; +} +.ui.active.label:before { + background-color: @labelActiveBackgroundColor; + background-image: @labelActiveBackgroundImage; + color: @labelActiveTextColor; +} + +/*------------------- + Active Hover +--------------------*/ + +a.ui.labels .active.label:hover, +a.ui.active.label:hover { + background-color: @labelActiveHoverBackgroundColor; + border-color: @labelActiveHoverBackgroundColor; + + background-image: @labelActiveHoverBackgroundImage; + color: @labelActiveHoverTextColor; +} +.ui.labels a.active.label:ActiveHover:before, +a.ui.active.label:ActiveHover:before { + background-color: @labelActiveHoverBackgroundColor; + background-image: @labelActiveHoverBackgroundImage; + color: @labelActiveHoverTextColor; +} + + +/*------------------- + Visible +--------------------*/ + +.ui.labels.visible .label, +.ui.label.visible:not(.dropdown) { + display: inline-block !important; +} + +/*------------------- + Hidden +--------------------*/ + +.ui.labels.hidden .label, +.ui.label.hidden { + display: none !important; +} + + +/******************************* + Variations +*******************************/ + + +/*------------------- + Colors +--------------------*/ + +/*--- Red ---*/ +.ui.red.labels .label, +.ui.red.label { + background-color: @red !important; + border-color: @red !important; + color: @redTextColor !important; +} +/* Link */ +.ui.red.labels .label:hover, +a.ui.red.label:hover{ + background-color: @redHover !important; + border-color: @redHover !important; + color: @redHoverTextColor !important; +} +/* Corner */ +.ui.red.corner.label, +.ui.red.corner.label:hover { + background-color: transparent !important; +} +/* Ribbon */ +.ui.red.ribbon.label { + border-color: @redRibbonShadow !important; +} +/* Basic */ +.ui.basic.red.label { + background: @basicBackground !important; + color: @red !important; + border-color: @red !important; +} +.ui.basic.red.labels a.label:hover, +a.ui.basic.red.label:hover { + background-color: @white !important; + color: @redHover !important; + border-color: @redHover !important; +} + +/*--- Orange ---*/ +.ui.orange.labels .label, +.ui.orange.label { + background-color: @orange !important; + border-color: @orange !important; + color: @orangeTextColor !important; +} +/* Link */ +.ui.orange.labels .label:hover, +a.ui.orange.label:hover{ + background-color: @orangeHover !important; + border-color: @orangeHover !important; + color: @orangeHoverTextColor !important; +} +/* Corner */ +.ui.orange.corner.label, +.ui.orange.corner.label:hover { + background-color: transparent !important; +} +/* Ribbon */ +.ui.orange.ribbon.label { + border-color: @orangeRibbonShadow !important; +} +/* Basic */ +.ui.basic.orange.label { + background: @basicBackground !important; + color: @orange !important; + border-color: @orange !important; +} +.ui.basic.orange.labels a.label:hover, +a.ui.basic.orange.label:hover { + background-color: @white !important; + color: @orangeHover !important; + border-color: @orangeHover !important; +} + +/*--- Yellow ---*/ +.ui.yellow.labels .label, +.ui.yellow.label { + background-color: @yellow !important; + border-color: @yellow !important; + color: @yellowTextColor !important; +} +/* Link */ +.ui.yellow.labels .label:hover, +a.ui.yellow.label:hover{ + background-color: @yellowHover !important; + border-color: @yellowHover !important; + color: @yellowHoverTextColor !important; +} +/* Corner */ +.ui.yellow.corner.label, +.ui.yellow.corner.label:hover { + background-color: transparent !important; +} +/* Ribbon */ +.ui.yellow.ribbon.label { + border-color: @yellowRibbonShadow !important; +} +/* Basic */ +.ui.basic.yellow.label { + background: @basicBackground !important; + color: @yellow !important; + border-color: @yellow !important; +} +.ui.basic.yellow.labels a.label:hover, +a.ui.basic.yellow.label:hover { + background-color: @white !important; + color: @yellowHover !important; + border-color: @yellowHover !important; +} + +/*--- Olive ---*/ +.ui.olive.labels .label, +.ui.olive.label { + background-color: @olive !important; + border-color: @olive !important; + color: @oliveTextColor !important; +} +/* Link */ +.ui.olive.labels .label:hover, +a.ui.olive.label:hover{ + background-color: @oliveHover !important; + border-color: @oliveHover !important; + color: @oliveHoverTextColor !important; +} +/* Corner */ +.ui.olive.corner.label, +.ui.olive.corner.label:hover { + background-color: transparent !important; +} +/* Ribbon */ +.ui.olive.ribbon.label { + border-color: @greenRibbonShadow !important; +} +/* Basic */ +.ui.basic.olive.label { + background: @basicBackground !important; + color: @olive !important; + border-color: @olive !important; +} +.ui.basic.olive.labels a.label:hover, +a.ui.basic.olive.label:hover { + background-color: @white !important; + color: @oliveHover !important; + border-color: @oliveHover !important; +} + +/*--- Green ---*/ +.ui.green.labels .label, +.ui.green.label { + background-color: @green !important; + border-color: @green !important; + color: @greenTextColor !important; +} +/* Link */ +.ui.green.labels .label:hover, +a.ui.green.label:hover{ + background-color: @greenHover !important; + border-color: @greenHover !important; + color: @greenHoverTextColor !important; +} +/* Corner */ +.ui.green.corner.label, +.ui.green.corner.label:hover { + background-color: transparent !important; +} +/* Ribbon */ +.ui.green.ribbon.label { + border-color: @greenRibbonShadow !important; +} +/* Basic */ +.ui.basic.green.label { + background: @basicBackground !important; + color: @green !important; + border-color: @green !important; +} +.ui.basic.green.labels a.label:hover, +a.ui.basic.green.label:hover { + background-color: @white !important; + color: @greenHover !important; + border-color: @greenHover !important; +} + +/*--- Teal ---*/ +.ui.teal.labels .label, +.ui.teal.label { + background-color: @teal !important; + border-color: @teal !important; + color: @tealTextColor !important; +} +/* Link */ +.ui.teal.labels .label:hover, +a.ui.teal.label:hover{ + background-color: @tealHover !important; + border-color: @tealHover !important; + color: @tealHoverTextColor !important; +} +/* Corner */ +.ui.teal.corner.label, +.ui.teal.corner.label:hover { + background-color: transparent !important; +} +/* Ribbon */ +.ui.teal.ribbon.label { + border-color: @tealRibbonShadow !important; +} +/* Basic */ +.ui.basic.teal.label { + background: @basicBackground !important; + color: @teal !important; + border-color: @teal !important; +} +.ui.basic.teal.labels a.label:hover, +a.ui.basic.teal.label:hover { + background-color: @white !important; + color: @tealHover !important; + border-color: @tealHover !important; +} + +/*--- Blue ---*/ +.ui.blue.labels .label, +.ui.blue.label { + background-color: @blue !important; + border-color: @blue !important; + color: @blueTextColor !important; +} +/* Link */ +.ui.blue.labels .label:hover, +a.ui.blue.label:hover{ + background-color: @blueHover !important; + border-color: @blueHover !important; + color: @blueHoverTextColor !important; +} +/* Corner */ +.ui.blue.corner.label, +.ui.blue.corner.label:hover { + background-color: transparent !important; +} +/* Ribbon */ +.ui.blue.ribbon.label { + border-color: @blueRibbonShadow !important; +} +/* Basic */ +.ui.basic.blue.label { + background: @basicBackground !important; + color: @blue !important; + border-color: @blue !important; +} +.ui.basic.blue.labels a.label:hover, +a.ui.basic.blue.label:hover { + background-color: @white !important; + color: @blueHover !important; + border-color: @blueHover !important; +} + +/*--- Violet ---*/ +.ui.violet.labels .label, +.ui.violet.label { + background-color: @violet !important; + border-color: @violet !important; + color: @violetTextColor !important; +} +/* Link */ +.ui.violet.labels .label:hover, +a.ui.violet.label:hover{ + background-color: @violetHover !important; + border-color: @violetHover !important; + color: @violetHoverTextColor !important; +} +/* Corner */ +.ui.violet.corner.label, +.ui.violet.corner.label:hover { + background-color: transparent !important; +} +/* Ribbon */ +.ui.violet.ribbon.label { + border-color: @violetRibbonShadow !important; +} +/* Basic */ +.ui.basic.violet.label { + background: @basicBackground !important; + color: @violet !important; + border-color: @violet !important; +} +.ui.basic.violet.labels a.label:hover, +a.ui.basic.violet.label:hover { + background-color: @white !important; + color: @violetHover !important; + border-color: @violetHover !important; +} + +/*--- Purple ---*/ +.ui.purple.labels .label, +.ui.purple.label { + background-color: @purple !important; + border-color: @purple !important; + color: @purpleTextColor !important; +} +/* Link */ +.ui.purple.labels .label:hover, +a.ui.purple.label:hover{ + background-color: @purpleHover !important; + border-color: @purpleHover !important; + color: @purpleHoverTextColor !important; +} +/* Corner */ +.ui.purple.corner.label, +.ui.purple.corner.label:hover { + background-color: transparent !important; +} +/* Ribbon */ +.ui.purple.ribbon.label { + border-color: @purpleRibbonShadow !important; +} +/* Basic */ +.ui.basic.purple.label { + background: @basicBackground !important; + color: @purple !important; + border-color: @purple !important; +} +.ui.basic.purple.labels a.label:hover, +a.ui.basic.purple.label:hover { + background-color: @white !important; + color: @purpleHover !important; + border-color: @purpleHover !important; +} + +/*--- Pink ---*/ +.ui.pink.labels .label, +.ui.pink.label { + background-color: @pink !important; + border-color: @pink !important; + color: @pinkTextColor !important; +} +/* Link */ +.ui.pink.labels .label:hover, +a.ui.pink.label:hover{ + background-color: @pinkHover !important; + border-color: @pinkHover !important; + color: @pinkHoverTextColor !important; +} +/* Corner */ +.ui.pink.corner.label, +.ui.pink.corner.label:hover { + background-color: transparent !important; +} +/* Ribbon */ +.ui.pink.ribbon.label { + border-color: @pinkRibbonShadow !important; +} +/* Basic */ +.ui.basic.pink.label { + background: @basicBackground !important; + color: @pink !important; + border-color: @pink !important; +} +.ui.basic.pink.labels a.label:hover, +a.ui.basic.pink.label:hover { + background-color: @white !important; + color: @pinkHover !important; + border-color: @pinkHover !important; +} + +/*--- Brown ---*/ +.ui.brown.labels .label, +.ui.brown.label { + background-color: @brown !important; + border-color: @brown !important; + color: @brownTextColor !important; +} +/* Link */ +.ui.brown.labels .label:hover, +a.ui.brown.label:hover{ + background-color: @brownHover !important; + border-color: @brownHover !important; + color: @brownHoverTextColor !important; +} +/* Corner */ +.ui.brown.corner.label, +.ui.brown.corner.label:hover { + background-color: transparent !important; +} +/* Ribbon */ +.ui.brown.ribbon.label { + border-color: @brownRibbonShadow !important; +} +/* Basic */ +.ui.basic.brown.label { + background: @basicBackground !important; + color: @brown !important; + border-color: @brown !important; +} +.ui.basic.brown.labels a.label:hover, +a.ui.basic.brown.label:hover { + background-color: @white !important; + color: @brownHover !important; + border-color: @brownHover !important; +} + +/*--- Grey ---*/ +.ui.grey.labels .label, +.ui.grey.label { + background-color: @grey !important; + border-color: @grey !important; + color: @greyTextColor !important; +} +/* Link */ +.ui.grey.labels .label:hover, +a.ui.grey.label:hover{ + background-color: @greyHover !important; + border-color: @greyHover !important; + color: @greyHoverTextColor !important; +} +/* Corner */ +.ui.grey.corner.label, +.ui.grey.corner.label:hover { + background-color: transparent !important; +} +/* Ribbon */ +.ui.grey.ribbon.label { + border-color: @brownRibbonShadow !important; +} +/* Basic */ +.ui.basic.grey.label { + background: @basicBackground !important; + color: @grey !important; + border-color: @grey !important; +} +.ui.basic.grey.labels a.label:hover, +a.ui.basic.grey.label:hover { + background-color: @white !important; + color: @greyHover !important; + border-color: @greyHover !important; +} + +/*--- Black ---*/ +.ui.black.labels .label, +.ui.black.label { + background-color: @black !important; + border-color: @black !important; + color: @blackTextColor !important; +} +/* Link */ +.ui.black.labels .label:hover, +a.ui.black.label:hover{ + background-color: @blackHover !important; + border-color: @blackHover !important; + color: @blackHoverTextColor !important; +} +/* Corner */ +.ui.black.corner.label, +.ui.black.corner.label:hover { + background-color: transparent !important; +} +/* Ribbon */ +.ui.black.ribbon.label { + border-color: @brownRibbonShadow !important; +} +/* Basic */ +.ui.basic.black.label { + background: @basicBackground !important; + color: @black !important; + border-color: @black !important; +} +.ui.basic.black.labels a.label:hover, +a.ui.basic.black.label:hover { + background-color: @white !important; + color: @blackHover !important; + border-color: @blackHover !important; +} + + +/*------------------- + Basic +--------------------*/ + +.ui.basic.label { + background: @basicBackground; + border: @basicBorder; + color: @basicColor; + box-shadow: @basicBoxShadow; +} + +/* Link */ +a.ui.basic.label:hover { + text-decoration: none; + background: @basicHoverBackground; + color: @basicHoverColor; + box-shadow: @basicHoverBorder; + box-shadow: @basicHoverBoxShadow; +} + +/* Pointing */ +.ui.basic.pointing.label:before { + border-color: inherit; +} + + +/*------------------- + Fluid +--------------------*/ + +.ui.label.fluid, +.ui.fluid.labels > .label { + width: 100%; + box-sizing: border-box; +} + +/*------------------- + Inverted +--------------------*/ + +.ui.inverted.labels .label, +.ui.inverted.label { + color: @invertedTextColor !important; +} + +/*------------------- + Horizontal +--------------------*/ + +.ui.horizontal.labels .label, +.ui.horizontal.label { + margin: 0em @horizontalLabelMargin 0em 0em; + + padding: @horizontalLabelVerticalPadding @horizontalPadding; + min-width: @horizontalLabelMinWidth; + text-align: center; +} + + +/*------------------- + Circular +--------------------*/ + +.ui.circular.labels .label, +.ui.circular.label { + min-width: @circularMinSize; + min-height: @circularMinSize; + + padding: @circularPadding !important; + + line-height: 1em; + text-align: center; + border-radius: @circularRadius; +} +.ui.empty.circular.labels .label, +.ui.empty.circular.label { + min-width: 0em; + min-height: 0em; + overflow: hidden; + width: @emptyCircleSize; + height: @emptyCircleSize; + vertical-align: baseline; +} + +/*------------------- + Pointing +--------------------*/ + +.ui.pointing.label { + position: relative; +} + +.ui.attached.pointing.label { + position: absolute; +} + +.ui.pointing.label:before { + background-color: inherit; + background-image: inherit; + border-width: none; + border-style: solid; + border-color: @pointingBorderColor; +} +/* Arrow */ +.ui.pointing.label:before { + position: absolute; + content: ''; + transform: rotate(45deg); + background-image: none; + + z-index: @pointingTriangleZIndex; + width: @pointingTriangleSize; + height: @pointingTriangleSize; + transition: @pointingTriangleTransition; +} + +/*--- Above ---*/ +.ui.pointing.label, +.ui[class*="pointing above"].label { + margin-top: @pointingVerticalDistance; +} +.ui.pointing.label:before, +.ui[class*="pointing above"].label:before { + border-width: @borderWidth 0px 0px @borderWidth; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + top: 0%; + left: 50%; +} +/*--- Below ---*/ +.ui[class*="bottom pointing"].label, +.ui[class*="pointing below"].label { + margin-top: 0em; + margin-bottom: @pointingVerticalDistance; +} +.ui[class*="bottom pointing"].label:before, +.ui[class*="pointing below"].label:before { + border-width: 0px @borderWidth @borderWidth 0px; + top: auto; + right: auto; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + top: 100%; + left: 50%; +} +/*--- Left ---*/ +.ui[class*="left pointing"].label { + margin-top: 0em; + margin-left: @pointingHorizontalDistance; +} +.ui[class*="left pointing"].label:before { + border-width: 0px 0px @borderWidth @borderWidth; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + bottom: auto; + right: auto; + top: 50%; + left: 0em; +} +/*--- Right ---*/ +.ui[class*="right pointing"].label { + margin-top: 0em; + margin-right: @pointingHorizontalDistance; +} +.ui[class*="right pointing"].label:before { + border-width: @borderWidth @borderWidth 0px 0px; + transform: translateX(50%) translateY(-50%) rotate(45deg); + top: 50%; + right: 0%; + bottom: auto; + left: auto; +} + +/* Basic Pointing */ + +/*--- Above ---*/ +.ui.basic.pointing.label:before, +.ui.basic[class*="pointing above"].label:before { + margin-top: @basicPointingTriangleOffset; +} +/*--- Below ---*/ +.ui.basic[class*="bottom pointing"].label:before, +.ui.basic[class*="pointing below"].label:before { + bottom: auto; + top: 100%; + margin-top: -@basicPointingTriangleOffset; +} +/*--- Left ---*/ +.ui.basic[class*="left pointing"].label:before { + top: 50%; + left: @basicPointingTriangleOffset; +} +/*--- Right ---*/ +.ui.basic[class*="right pointing"].label:before { + top: 50%; + right: @basicPointingTriangleOffset; +} + + +/*------------------ + Floating Label +-------------------*/ + +.ui.floating.label { + position: absolute; + z-index: @floatingZIndex; + top: @floatingTopOffset; + left: 100%; + margin: 0em 0em 0em @floatingLeftOffset !important; +} + +/*------------------- + Sizes +--------------------*/ + +.ui.mini.labels .label, +.ui.mini.label { + font-size: @mini; +} +.ui.tiny.labels .label, +.ui.tiny.label { + font-size: @tiny; +} +.ui.small.labels .label, +.ui.small.label { + font-size: @small; +} +.ui.labels .label, +.ui.label { + font-size: @medium; +} +.ui.large.labels .label, +.ui.large.label { + font-size: @large; +} +.ui.big.labels .label, +.ui.big.label { + font-size: @big; +} +.ui.huge.labels .label, +.ui.huge.label { + font-size: @huge; +} +.ui.massive.labels .label, +.ui.massive.label { + font-size: @massive; +} + +.loadUIOverrides(); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/list.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/list.less new file mode 100644 index 00000000..eb747d3a --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/list.less @@ -0,0 +1,953 @@ +/*! + * # Semantic UI - List + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Theme +*******************************/ + +@type : 'element'; +@element : 'list'; + +@import (multiple) '../../theme.config'; + +/******************************* + List +*******************************/ + +ul.ui.list, +ol.ui.list, +.ui.list { + list-style-type: @listStyleType; + margin: @margin; + padding: @verticalPadding @horizontalPadding; +} + +ul.ui.list:first-child, +ol.ui.list:first-child, +.ui.list:first-child { + margin-top: 0em; + padding-top: 0em; +} + +ul.ui.list:last-child, +ol.ui.list:last-child, +.ui.list:last-child { + margin-bottom: 0em; + padding-bottom: 0em; +} + +/******************************* + Content +*******************************/ + +/* List Item */ +ul.ui.list li, +ol.ui.list li, +.ui.list > .item, +.ui.list .list > .item { + display: list-item; + table-layout: fixed; + list-style-type: @listStyleType; + list-style-position: @listStylePosition; + + padding: @itemPadding; + line-height: @itemLineHeight; +} + +ul.ui.list > li:first-child:after, +ol.ui.list > li:first-child:after, +.ui.list > .list > .item, +.ui.list > .item:after { + content: ''; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +ul.ui.list li:first-child, +ol.ui.list li:first-child, +.ui.list .list > .item:first-child, +.ui.list > .item:first-child { + padding-top: 0em; +} +ul.ui.list li:last-child, +ol.ui.list li:last-child, +.ui.list .list > .item:last-child, +.ui.list > .item:last-child { + padding-bottom: 0em; +} + +/* Child List */ +ul.ui.list ul, +ol.ui.list ol, +.ui.list .list { + clear: both; + margin: 0em; + padding: @childListPadding; +} + +/* Child Item */ +ul.ui.list ul li, +ol.ui.list ol li, +.ui.list .list > .item { + padding: @childItemPadding; + line-height: @childItemLineHeight; +} + + +/* Icon */ +.ui.list .list > .item > i.icon, +.ui.list > .item > i.icon { + display: table-cell; + margin: 0em; + padding-top: @iconOffset; + padding-right: @iconDistance; + vertical-align: @iconContentVerticalAlign; + transition: @iconTransition; +} +.ui.list .list > .item > i.icon:only-child, +.ui.list > .item > i.icon:only-child { + display: inline-block; + vertical-align: @iconVerticalAlign; +} + + +/* Image */ +.ui.list .list > .item > .image, +.ui.list > .item > .image { + display: table-cell; + background-color: transparent; + margin: 0em; + vertical-align: @imageAlign; +} +.ui.list .list > .item > .image:not(:only-child):not(img), +.ui.list > .item > .image:not(:only-child):not(img) { + padding-right: @imageDistance; +} +.ui.list .list > .item > .image img, +.ui.list > .item > .image img { + vertical-align: @imageAlign; +} + +.ui.list .list > .item > img.image, +.ui.list .list > .item > .image:only-child, +.ui.list > .item > img.image, +.ui.list > .item > .image:only-child { + display: inline-block; +} + +/* Content */ +.ui.list .list > .item > .content, +.ui.list > .item > .content { + line-height: @contentLineHeight; +} +.ui.list .list > .item > .image + .content, +.ui.list .list > .item > .icon + .content, +.ui.list > .item > .image + .content, +.ui.list > .item > .icon + .content { + display: table-cell; + width: 100%; + padding: 0em 0em 0em @contentDistance; + vertical-align: @contentVerticalAlign; +} +.ui.list .list > .item > img.image + .content, +.ui.list > .item > img.image + .content { + display: inline-block; + width: auto; +} +.ui.list .list > .item > .content > .list, +.ui.list > .item > .content > .list { + margin-left: 0em; + padding-left: 0em; +} + +/* Header */ +.ui.list .list > .item .header, +.ui.list > .item .header { + display: block; + margin: 0em; + font-family: @itemHeaderFontFamily; + font-weight: @itemHeaderFontWeight; + color: @itemHeaderColor; +} + +/* Description */ +.ui.list .list > .item .description, +.ui.list > .item .description { + display: block; + color: @itemDescriptionColor; +} + +/* Child Link */ +.ui.list > .item a, +.ui.list .list > .item a { + cursor: pointer; +} + +/* Linking Item */ +.ui.list .list > a.item, +.ui.list > a.item { + cursor: pointer; + color: @itemLinkColor; +} +.ui.list .list > a.item:hover, +.ui.list > a.item:hover { + color: @itemLinkHoverColor; +} + +/* Linked Item Icons */ +.ui.list .list > a.item i.icon, +.ui.list > a.item i.icon { + color: @itemLinkIconColor; +} + +/* Header Link */ +.ui.list .list > .item a.header, +.ui.list > .item a.header { + cursor: pointer; + color: @itemHeaderLinkColor !important; +} +.ui.list .list > .item a.header:hover, +.ui.list > .item a.header:hover { + color: @itemHeaderLinkHoverColor !important; +} + +/* Floated Content */ +.ui[class*="left floated"].list { + float: left; +} +.ui[class*="right floated"].list { + float: right; +} + +.ui.list .list > .item [class*="left floated"], +.ui.list > .item [class*="left floated"] { + float: left; + margin: @leftFloatMargin; +} +.ui.list .list > .item [class*="right floated"], +.ui.list > .item [class*="right floated"] { + float: right; + margin: @rightFloatMargin; +} + +/******************************* + Coupling +*******************************/ + +.ui.menu .ui.list > .item, +.ui.menu .ui.list .list > .item { + display: list-item; + table-layout: fixed; + background-color: transparent; + + list-style-type: @listStyleType; + list-style-position: @listStylePosition; + + padding: @itemVerticalPadding @itemHorizontalPadding; + line-height: @itemLineHeight; +} +.ui.menu .ui.list .list > .item:before, +.ui.menu .ui.list > .item:before { + border: none; + background: none; +} +.ui.menu .ui.list .list > .item:first-child, +.ui.menu .ui.list > .item:first-child { + padding-top: 0em; +} +.ui.menu .ui.list .list > .item:last-child, +.ui.menu .ui.list > .item:last-child { + padding-bottom: 0em; +} + + +/******************************* + Types +*******************************/ + +/*------------------- + Horizontal +--------------------*/ + +.ui.horizontal.list { + display: inline-block; + font-size: 0em; +} +.ui.horizontal.list > .item { + display: inline-block; + margin-left: @horizontalSpacing; + font-size: 1rem; +} +.ui.horizontal.list:not(.celled) > .item:first-child { + margin-left: 0em !important; + padding-left: 0em !important; +} +.ui.horizontal.list .list { + padding-left: 0em; + padding-bottom: 0em; +} + +.ui.horizontal.list > .item > .image, +.ui.horizontal.list .list > .item > .image, +.ui.horizontal.list > .item > .icon, +.ui.horizontal.list .list > .item > .icon, +.ui.horizontal.list > .item > .content, +.ui.horizontal.list .list > .item > .content { + vertical-align: @horizontalVerticalAlign; +} + +/* Padding on all elements */ +.ui.horizontal.list > .item:first-child, +.ui.horizontal.list > .item:last-child { + padding-top: @itemVerticalPadding; + padding-bottom: @itemVerticalPadding; +} + +/* Horizontal List */ +.ui.horizontal.list > .item > i.icon { + margin: 0em; + padding: 0em @horizontalIconDistance 0em 0em; +} +.ui.horizontal.list > .item > .icon, +.ui.horizontal.list > .item > .icon + .content { + float: none; + display: inline-block; +} + + +/******************************* + States +*******************************/ + +/*------------------- + Disabled +--------------------*/ + +.ui.list .list > .disabled.item, +.ui.list > .disabled.item { + pointer-events: none; + color: @disabledColor !important; +} +.ui.inverted.list .list > .disabled.item, +.ui.inverted.list > .disabled.item { + color: @invertedDisabledColor !important; +} + +/*------------------- + Hover +--------------------*/ + +.ui.list .list > a.item:hover .icon, +.ui.list > a.item:hover .icon { + color: @itemLinkIconHoverColor; +} + + +/******************************* + Variations +*******************************/ + +/*------------------- + Inverted +--------------------*/ + +.ui.inverted.list .list > a.item > .icon, +.ui.inverted.list > a.item > .icon { + color: @invertedIconLinkColor; +} +.ui.inverted.list .list > .item .header, +.ui.inverted.list > .item .header { + color: @invertedHeaderColor; +} +.ui.inverted.list .list > .item .description, +.ui.inverted.list > .item .description { + color: @invertedDescriptionColor; +} + +/* Item Link */ +.ui.inverted.list .list > a.item, +.ui.inverted.list > a.item { + cursor: pointer; + color: @invertedItemLinkColor; +} +.ui.inverted.list .list > a.item:hover, +.ui.inverted.list > a.item:hover { + color: @invertedItemLinkHoverColor; +} + + +/* Linking Content */ +.ui.inverted.list .item a:not(.ui) { + color: @invertedItemLinkColor !important; +} +.ui.inverted.list .item a:not(.ui):hover { + color: @invertedItemLinkHoverColor !important; +} + +/*------------------- + Aligned +--------------------*/ + +.ui.list[class*="top aligned"] .image, +.ui.list[class*="top aligned"] .content, +.ui.list [class*="top aligned"] { + vertical-align: top !important; +} +.ui.list[class*="middle aligned"] .image, +.ui.list[class*="middle aligned"] .content, +.ui.list [class*="middle aligned"] { + vertical-align: middle !important; +} +.ui.list[class*="bottom aligned"] .image, +.ui.list[class*="bottom aligned"] .content, +.ui.list [class*="bottom aligned"] { + vertical-align: bottom !important; +} + +/*------------------- + Link +--------------------*/ + +.ui.link.list .item, +.ui.link.list a.item, +.ui.link.list .item a:not(.ui) { + color: @linkListItemColor; + transition: @linkListTransition; +} +.ui.link.list.list a.item:hover, +.ui.link.list.list .item a:not(.ui):hover { + color: @linkListItemHoverColor; +} +.ui.link.list.list a.item:active, +.ui.link.list.list .item a:not(.ui):active { + color: @linkListItemDownColor; +} +.ui.link.list.list .active.item, +.ui.link.list.list .active.item a:not(.ui) { + color: @linkListItemActiveColor; +} + +/* Inverted */ +.ui.inverted.link.list .item, +.ui.inverted.link.list a.item, +.ui.inverted.link.list .item a:not(.ui) { + color: @invertedLinkListItemColor; +} +.ui.inverted.link.list.list a.item:hover, +.ui.inverted.link.list.list .item a:not(.ui):hover { + color: @invertedLinkListItemHoverColor; +} +.ui.inverted.link.list.list a.item:active, +.ui.inverted.link.list.list .item a:not(.ui):active { + color: @invertedLinkListItemDownColor; +} +.ui.inverted.link.list.list a.active.item, +.ui.inverted.link.list.list .active.item a:not(.ui) { + color: @invertedLinkListItemActiveColor; +} + +/*------------------- + Selection +--------------------*/ + +.ui.selection.list .list > .item, +.ui.selection.list > .item { + cursor: pointer; + background: @selectionListBackground; + padding: @selectionListItemVerticalPadding @selectionListItemHorizontalPadding; + margin: @selectionListItemMargin; + color: @selectionListColor; + border-radius: @selectionListItemBorderRadius; + transition: @selectionListTransition; +} +.ui.selection.list .list > .item:last-child, +.ui.selection.list > .item:last-child { + margin-bottom: 0em; +} +.ui.selection.list.list > .item:hover, +.ui.selection.list > .item:hover { + background: @selectionListHoverBackground; + color: @selectionListHoverColor; +} +.ui.selection.list .list > .item:active, +.ui.selection.list > .item:active { + background: @selectionListDownBackground; + color: @selectionListDownColor; +} +.ui.selection.list .list > .item.active, +.ui.selection.list > .item.active { + background: @selectionListActiveBackground; + color: @selectionListActiveColor; +} + +/* Inverted */ +.ui.inverted.selection.list > .item, +.ui.inverted.selection.list > .item { + background: @invertedSelectionListBackground; + color: @invertedSelectionListColor; +} +.ui.inverted.selection.list > .item:hover, +.ui.inverted.selection.list > .item:hover { + background: @invertedSelectionListHoverBackground; + color: @invertedSelectionListHoverColor; +} +.ui.inverted.selection.list > .item:active, +.ui.inverted.selection.list > .item:active { + background: @invertedSelectionListDownBackground; + color: @invertedSelectionListDownColor; +} +.ui.inverted.selection.list > .item.active, +.ui.inverted.selection.list > .item.active { + background: @invertedSelectionListActiveBackground; + color: @invertedSelectionListActiveColor; +} + +/* Celled / Divided Selection List */ +.ui.celled.selection.list .list > .item, +.ui.divided.selection.list .list > .item, +.ui.celled.selection.list > .item, +.ui.divided.selection.list > .item { + border-radius: 0em; +} + +/*------------------- + Animated +--------------------*/ + +.ui.animated.list > .item { + transition: @animatedListTransition; +} +.ui.animated.list:not(.horizontal) > .item:hover { + padding-left: @animatedListIndent; +} + +/*------------------- + Fitted +--------------------*/ +.ui.fitted.list:not(.selection) .list > .item, +.ui.fitted.list:not(.selection) > .item { + padding-left: 0em; + padding-right: 0em; +} +.ui.fitted.selection.list .list > .item, +.ui.fitted.selection.list > .item { + margin-left: -@selectionListItemHorizontalPadding; + margin-right: -@selectionListItemHorizontalPadding; +} + +/*------------------- + Bulleted +--------------------*/ + +ul.ui.list, +.ui.bulleted.list { + margin-left: @bulletDistance; +} +ul.ui.list li, +.ui.bulleted.list .list > .item, +.ui.bulleted.list > .item { + position: relative; +} +ul.ui.list li:before, +.ui.bulleted.list .list > .item:before, +.ui.bulleted.list > .item:before { + user-select: none; + pointer-events: none; + position: absolute; + top: auto; + left: auto; + font-weight: @normal; + margin-left: @bulletOffset; + content: @bulletCharacter; + opacity: @bulletOpacity; + color: @bulletColor; + vertical-align: @bulletVerticalAlign; +} + +ul.ui.list li:before, +.ui.bulleted.list .list > a.item:before, +.ui.bulleted.list > a.item:before { + color: @bulletLinkColor; +} + +ul.ui.list ul, +.ui.bulleted.list .list { + padding-left: @bulletChildDistance; +} + +/* Horizontal Bulleted */ +ul.ui.horizontal.bulleted.list, +.ui.horizontal.bulleted.list { + margin-left: 0em; +} +ul.ui.horizontal.bulleted.list li, +.ui.horizontal.bulleted.list > .item { + margin-left: @horizontalBulletSpacing; +} +ul.ui.horizontal.bulleted.list li:first-child, +.ui.horizontal.bulleted.list > .item:first-child { + margin-left: 0em; +} +ul.ui.horizontal.bulleted.list li::before, +.ui.horizontal.bulleted.list > .item::before { + color: @horizontalBulletColor; +} +ul.ui.horizontal.bulleted.list li:first-child::before, +.ui.horizontal.bulleted.list > .item:first-child::before { + display: none; +} + +/*------------------- + Ordered +--------------------*/ + +ol.ui.list, +.ui.ordered.list, +.ui.ordered.list .list, +ol.ui.list ol { + counter-reset: ordered; + margin-left: @orderedCountDistance; + list-style-type: none; +} +ol.ui.list li, +.ui.ordered.list .list > .item, +.ui.ordered.list > .item { + list-style-type: none; + position: relative; +} +ol.ui.list li:before, +.ui.ordered.list .list > .item:before, +.ui.ordered.list > .item:before { + position: absolute; + top: auto; + left: auto; + user-select: none; + pointer-events: none; + margin-left: -(@orderedCountDistance); + counter-increment: @orderedCountName; + content: @orderedCountContent; + text-align: @orderedCountTextAlign; + color: @orderedCountColor; + vertical-align: @orderedCountVerticalAlign; + opacity: @orderedCountOpacity; +} + +ol.ui.inverted.list li:before, +.ui.ordered.inverted.list .list > .item:before, +.ui.ordered.inverted.list > .item:before { + color: @orderedInvertedCountColor; +} + +/* Value */ +.ui.ordered.list > .list > .item[data-value], +.ui.ordered.list > .item[data-value] { + content: attr(data-value); +} +ol.ui.list li[value]:before { + content: attr(value); +} + +/* Child Lists */ +ol.ui.list ol, +.ui.ordered.list .list { + margin-left: @orderedChildCountDistance; +} +ol.ui.list ol li:before, +.ui.ordered.list .list > .item:before { + margin-left: @orderedChildCountOffset; +} + +/* Horizontal Ordered */ +ol.ui.horizontal.list, +.ui.ordered.horizontal.list { + margin-left: 0em; +} +ol.ui.horizontal.list li:before, +.ui.ordered.horizontal.list .list > .item:before, +.ui.ordered.horizontal.list > .item:before { + position: static; + margin: 0em @horizontalOrderedCountDistance 0em 0em; +} + +/*------------------- + Divided +--------------------*/ + +.ui.divided.list > .item { + border-top: @dividedBorder; +} +.ui.divided.list .list > .item { + border-top: @dividedChildListBorder; +} +.ui.divided.list .item .list > .item { + border-top: @dividedChildItemBorder; +} +.ui.divided.list .list > .item:first-child, +.ui.divided.list > .item:first-child { + border-top: none; +} + +/* Sub Menu */ +.ui.divided.list:not(.horizontal) .list > .item:first-child { + border-top-width: @dividedBorderWidth; +} + +/* Divided bulleted */ +.ui.divided.bulleted.list:not(.horizontal), +.ui.divided.bulleted.list .list { + margin-left: 0em; + padding-left: 0em; +} +.ui.divided.bulleted.list > .item:not(.horizontal) { + padding-left: @bulletDistance; +} + +/* Divided Ordered */ +.ui.divided.ordered.list { + margin-left: 0em; +} +.ui.divided.ordered.list .list > .item, +.ui.divided.ordered.list > .item { + padding-left: @orderedCountDistance; +} +.ui.divided.ordered.list .item .list { + margin-left: 0em; + margin-right: 0em; + padding-bottom: @itemVerticalPadding; +} +.ui.divided.ordered.list .item .list > .item { + padding-left: @orderedChildCountDistance; +} + +/* Divided Selection */ +.ui.divided.selection.list .list > .item, +.ui.divided.selection.list > .item { + margin: 0em; + border-radius: 0em; +} + +/* Divided horizontal */ +.ui.divided.horizontal.list { + margin-left: 0em; +} +.ui.divided.horizontal.list > .item:not(:first-child) { + padding-left: @horizontalDividedSpacing; +} +.ui.divided.horizontal.list > .item:not(:last-child) { + padding-right: @horizontalDividedSpacing; +} +.ui.divided.horizontal.list > .item { + border-top: none; + border-left: @dividedBorder; + margin: 0em; + line-height: @horizontalDividedLineHeight; +} +.ui.horizontal.divided.list > .item:first-child { + border-left: none; +} +/* Inverted */ +.ui.divided.inverted.list > .item, +.ui.divided.inverted.list > .list, +.ui.divided.inverted.horizontal.list > .item { + border-color: @dividedInvertedBorderColor; +} + + +/*------------------- + Celled +--------------------*/ + +.ui.celled.list > .item, +.ui.celled.list > .list { + border-top: @celledBorder; + padding-left: @celledHorizontalPadding; + padding-right: @celledHorizontalPadding; +} +.ui.celled.list > .item:last-child { + border-bottom: @celledBorder; +} + +/* Padding on all elements */ +.ui.celled.list > .item:first-child, +.ui.celled.list > .item:last-child { + padding-top: @itemVerticalPadding; + padding-bottom: @itemVerticalPadding; +} + +/* Sub Menu */ +.ui.celled.list .item .list > .item { + border-width: 0px; +} +.ui.celled.list .list > .item:first-child { + border-top-width: 0px; +} + +/* Celled Bulleted */ +.ui.celled.bulleted.list { + margin-left: 0em; +} +.ui.celled.bulleted.list .list > .item, +.ui.celled.bulleted.list > .item { + padding-left: (@bulletDistance); +} +.ui.celled.bulleted.list .item .list { + margin-left: -(@bulletDistance); + margin-right: -(@bulletDistance); + padding-bottom: @itemVerticalPadding; +} + +/* Celled Ordered */ +.ui.celled.ordered.list { + margin-left: 0em; +} +.ui.celled.ordered.list .list > .item, +.ui.celled.ordered.list > .item { + padding-left: @orderedCountDistance; +} +.ui.celled.ordered.list .item .list { + margin-left: 0em; + margin-right: 0em; + padding-bottom: @itemVerticalPadding; +} +.ui.celled.ordered.list .list > .item { + padding-left: @orderedChildCountDistance; +} + +/* Celled Horizontal */ +.ui.horizontal.celled.list { + margin-left: 0em; +} +.ui.horizontal.celled.list .list > .item, +.ui.horizontal.celled.list > .item { + border-top: none; + border-left: @celledBorder; + margin: 0em; + padding-left: @horizontalCelledSpacing; + padding-right: @horizontalCelledSpacing; + + line-height: @horizontalCelledLineHeight; +} +.ui.horizontal.celled.list .list > .item:last-child, +.ui.horizontal.celled.list > .item:last-child { + border-bottom: none; + border-right: @celledBorder; +} + +/* Inverted */ +.ui.celled.inverted.list > .item, +.ui.celled.inverted.list > .list { + border-color: @celledInvertedBorder; +} +.ui.celled.inverted.horizontal.list .list > .item, +.ui.celled.inverted.horizontal.list > .item { + border-color: @celledInvertedBorder; +} + +/*------------------- + Relaxed +--------------------*/ + +.ui.relaxed.list:not(.horizontal) > .item:not(:first-child) { + padding-top: @relaxedItemVerticalPadding; +} +.ui.relaxed.list:not(.horizontal) > .item:not(:last-child) { + padding-bottom: @relaxedItemVerticalPadding; +} +.ui.horizontal.relaxed.list .list > .item:not(:first-child), +.ui.horizontal.relaxed.list > .item:not(:first-child) { + padding-left: @relaxedHorizontalPadding; +} +.ui.horizontal.relaxed.list .list > .item:not(:last-child), +.ui.horizontal.relaxed.list > .item:not(:last-child) { + padding-right: @relaxedHorizontalPadding; +} + +/* Very Relaxed */ +.ui[class*="very relaxed"].list:not(.horizontal) > .item:not(:first-child) { + padding-top: @veryRelaxedItemVerticalPadding; +} +.ui[class*="very relaxed"].list:not(.horizontal) > .item:not(:last-child) { + padding-bottom: @veryRelaxedItemVerticalPadding; +} +.ui.horizontal[class*="very relaxed"].list .list > .item:not(:first-child), +.ui.horizontal[class*="very relaxed"].list > .item:not(:first-child) { + padding-left: @veryRelaxedHorizontalPadding; +} +.ui.horizontal[class*="very relaxed"].list .list > .item:not(:last-child), +.ui.horizontal[class*="very relaxed"].list > .item:not(:last-child) { + padding-right: @veryRelaxedHorizontalPadding; +} + +/*------------------- + Sizes +--------------------*/ + +.ui.mini.list { + font-size: @relativeMini; +} +.ui.tiny.list { + font-size: @relativeTiny; +} +.ui.small.list { + font-size: @relativeSmall; +} +.ui.list { + font-size: @relativeMedium; +} +.ui.large.list { + font-size: @relativeLarge; +} +.ui.big.list { + font-size: @relativeBig; +} +.ui.huge.list { + font-size: @relativeHuge; +} +.ui.massive.list { + font-size: @relativeMassive; +} + +.ui.mini.horizontal.list .list > .item, +.ui.mini.horizontal.list > .item { + font-size: @mini; +} +.ui.tiny.horizontal.list .list > .item, +.ui.tiny.horizontal.list > .item { + font-size: @tiny; +} +.ui.small.horizontal.list .list > .item, +.ui.small.horizontal.list > .item { + font-size: @small; +} +.ui.horizontal.list .list > .item, +.ui.horizontal.list > .item { + font-size: @medium; +} +.ui.large.horizontal.list .list > .item, +.ui.large.horizontal.list > .item { + font-size: @large; +} +.ui.big.horizontal.list .list > .item, +.ui.big.horizontal.list > .item { + font-size: @big; +} +.ui.huge.horizontal.list .list > .item, +.ui.huge.horizontal.list > .item { + font-size: @huge; +} +.ui.massive.horizontal.list .list > .item, +.ui.massive.horizontal.list > .item { + font-size: @massive; +} + +.loadUIOverrides(); + diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/loader.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/loader.less new file mode 100644 index 00000000..9bf271d4 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/loader.less @@ -0,0 +1,331 @@ +/*! + * # Semantic UI - Loader + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ +/******************************* + Theme +*******************************/ + +@type : 'element'; +@element : 'loader'; + +@import (multiple) '../../theme.config'; + +/******************************* + Loader +*******************************/ + + +/* Standard Size */ +.ui.loader { + display: none; + position: absolute; + top: @loaderTopOffset; + left: @loaderLeftOffset; + margin: 0px; + text-align: center; + z-index: 1000; + transform: translateX(-50%) translateY(-50%); +} + +/* Static Shape */ +.ui.loader:before { + position: absolute; + content: ''; + top: 0%; + left: 50%; + width: 100%; + height: 100%; + + border-radius: @circularRadius; + border: @loaderLineWidth solid @loaderFillColor; +} + +/* Active Shape */ +.ui.loader:after { + position: absolute; + content: ''; + top: 0%; + left: 50%; + width: 100%; + height: 100%; + + animation: loader @loaderSpeed linear; + animation-iteration-count: infinite; + + border-radius: @circularRadius; + + border-color: @shapeBorderColor; + border-style: solid; + border-width: @loaderLineWidth; + + box-shadow: 0px 0px 0px 1px transparent; +} + +/* Active Animation */ +@keyframes loader { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +/* Sizes */ +.ui.mini.loader:before, +.ui.mini.loader:after { + width: @mini; + height: @mini; + margin: @miniOffset; +} +.ui.tiny.loader:before, +.ui.tiny.loader:after { + width: @tiny; + height: @tiny; + margin: @tinyOffset; +} +.ui.small.loader:before, +.ui.small.loader:after { + width: @small; + height: @small; + margin: @smallOffset; +} +.ui.loader:before, +.ui.loader:after { + width: @medium; + height: @medium; + margin: @mediumOffset; +} +.ui.large.loader:before, +.ui.large.loader:after { + width: @large; + height: @large; + margin: @largeOffset; +} +.ui.big.loader:before, +.ui.big.loader:after { + width: @big; + height: @big; + margin: @bigOffset; +} +.ui.huge.loader:before, +.ui.huge.loader:after { + width: @huge; + height: @huge; + margin: @hugeOffset; +} +.ui.massive.loader:before, +.ui.massive.loader:after { + width: @massive; + height: @massive; + margin: @massiveOffset; +} + +/*------------------- + Coupling +--------------------*/ + +/* Show inside active dimmer */ +.ui.dimmer .loader { + display: block; +} + +/* Black Dimmer */ +.ui.dimmer .ui.loader { + color: @invertedLoaderTextColor; +} +.ui.dimmer .ui.loader:before { + border-color: @invertedLoaderFillColor; +} +.ui.dimmer .ui.loader:after { + border-color: @invertedShapeBorderColor; +} + +/* White Dimmer (Inverted) */ +.ui.inverted.dimmer .ui.loader { + color: @loaderTextColor; +} +.ui.inverted.dimmer .ui.loader:before { + border-color: @loaderFillColor; +} +.ui.inverted.dimmer .ui.loader:after { + border-color: @shapeBorderColor; +} + +/******************************* + Types +*******************************/ + +/*------------------- + Text +--------------------*/ + +.ui.text.loader { + width: auto !important; + height: auto !important; + text-align: center; + font-style: normal; +} + + +/******************************* + States +*******************************/ + +.ui.indeterminate.loader:after { + animation-direction: @indeterminateDirection; + animation-duration: @indeterminateSpeed; +} + +.ui.loader.active, +.ui.loader.visible { + display: block; +} +.ui.loader.disabled, +.ui.loader.hidden { + display: none; +} + +/******************************* + Variations +*******************************/ + + +/*------------------- + Sizes +--------------------*/ + + +/* Loader */ +.ui.inverted.dimmer .ui.mini.loader, +.ui.mini.loader { + width: @mini; + height: @mini; + font-size: @miniFontSize; +} +.ui.inverted.dimmer .ui.tiny.loader, +.ui.tiny.loader { + width: @tiny; + height: @tiny; + font-size: @tinyFontSize; +} +.ui.inverted.dimmer .ui.small.loader, +.ui.small.loader { + width: @small; + height: @small; + font-size: @smallFontSize; +} +.ui.inverted.dimmer .ui.loader, +.ui.loader { + width: @medium; + height: @medium; + font-size: @mediumFontSize; +} +.ui.inverted.dimmer .ui.large.loader, +.ui.large.loader { + width: @large; + height: @large; + font-size: @largeFontSize; +} +.ui.inverted.dimmer .ui.big.loader, +.ui.big.loader { + width: @big; + height: @big; + font-size: @bigFontSize; +} +.ui.inverted.dimmer .ui.huge.loader, +.ui.huge.loader { + width: @huge; + height: @huge; + font-size: @hugeFontSize; +} +.ui.inverted.dimmer .ui.massive.loader, +.ui.massive.loader { + width: @massive; + height: @massive; + font-size: @massiveFontSize; +} + +/* Text Loader */ +.ui.mini.text.loader { + min-width: @mini; + padding-top: (@mini + @textDistance); +} +.ui.tiny.text.loader { + min-width: @tiny; + padding-top: (@tiny + @textDistance); +} +.ui.small.text.loader { + min-width: @small; + padding-top: (@small + @textDistance); +} +.ui.text.loader { + min-width: @medium; + padding-top: (@medium + @textDistance); +} +.ui.large.text.loader { + min-width: @large; + padding-top: (@large + @textDistance); +} +.ui.big.text.loader { + min-width: @big; + padding-top: (@big + @textDistance); +} +.ui.huge.text.loader { + min-width: @huge; + padding-top: (@huge + @textDistance); +} +.ui.massive.text.loader { + min-width: @massive; + padding-top: (@massive + @textDistance); +} + + +/*------------------- + Inverted +--------------------*/ + +.ui.inverted.loader { + color: @invertedLoaderTextColor +} +.ui.inverted.loader:before { + border-color: @invertedLoaderFillColor; +} +.ui.inverted.loader:after { + border-top-color: @invertedLoaderLineColor; +} + +/*------------------- + Inline +--------------------*/ + +.ui.inline.loader { + position: relative; + vertical-align: @inlineVerticalAlign; + margin: @inlineMargin; + left: 0em; + top: 0em; + transform: none; +} + +.ui.inline.loader.active, +.ui.inline.loader.visible { + display: inline-block; +} + +/* Centered Inline */ +.ui.centered.inline.loader.active, +.ui.centered.inline.loader.visible { + display: block; + margin-left: auto; + margin-right: auto; +} + + +.loadUIOverrides(); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/placeholder.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/placeholder.less new file mode 100644 index 00000000..e18c4aba --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/placeholder.less @@ -0,0 +1,232 @@ +/*! + * # Semantic UI - Loader + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ +/******************************* + Theme +*******************************/ + +@type : 'element'; +@element : 'placeholder'; + +@import (multiple) '../../theme.config'; + +/*------------------- + Content +--------------------*/ + +.ui.placeholder { + position: static; + overflow: hidden; + animation: placeholderShimmer @placeholderLoadingAnimationDuration linear; + animation-iteration-count: infinite; + background-color: @white; + background-image: @placeholderLoadingGradient; + background-size: @placeholderLoadingGradientWidth 100%; + max-width: @placeholderMaxWidth; +} + +@keyframes placeholderShimmer{ + 0% { + background-position: -@placeholderLoadingGradientWidth 0 + } + 100% { + background-position: @placeholderLoadingGradientWidth 0 + } +} + +.ui.placeholder + .ui.placeholder { + margin-top: @consecutivePlaceholderSpacing; +} +.ui.placeholder + .ui.placeholder { + animation-delay: @placeholderAnimationInterval; +} +.ui.placeholder + .ui.placeholder + .ui.placeholder { + animation-delay: (@placeholderAnimationInterval * 2); +} +.ui.placeholder + .ui.placeholder + .ui.placeholder + .ui.placeholder { + animation-delay: (@placeholderAnimationInterval * 3); +} +.ui.placeholder + .ui.placeholder + .ui.placeholder + .ui.placeholder + .ui.placeholder { + animation-delay: (@placeholderAnimationInterval * 4); +} + +.ui.placeholder, +.ui.placeholder > :before, +.ui.placeholder .image.header:after, +.ui.placeholder .line, +.ui.placeholder .line:after { + background-color: @white; +} + +/* Image */ +.ui.placeholder .image:not(.header):not(.ui) { + height: @placeholderImageHeight; +} +.ui.placeholder .square.image:not(.header) { + height: 0px; + overflow: hidden; + /* 1/1 aspect ratio */ + padding-top: 100%; +} +.ui.placeholder .rectangular.image:not(.header) { + height: 0px; + overflow: hidden; + /* 4/3 aspect ratio */ + padding-top: 75%; +} + + +/* Lines */ +.ui.placeholder .line { + position: relative; + height: @placeholderLineMargin; +} +.ui.placeholder .line:before, +.ui.placeholder .line:after { + top: 100%; + position: absolute; + content: ''; + background-color: inherit; +} +.ui.placeholder .line:before { + left: 0px; +} +.ui.placeholder .line:after { + right: 0px; +} + +/* Any Lines */ +.ui.placeholder .line { + margin-bottom: @placeholderLineHeight; +} +.ui.placeholder .line:before, +.ui.placeholder .line:after { + height: @placeholderLineHeight; +} +.ui.placeholder .line:not(:first-child) { + margin-top: @placeholderLineHeight; +} + +/* Header Image + 2 Lines */ +.ui.placeholder .header { + position: relative; + overflow: hidden; +} + +/* Line Outdent */ +.ui.placeholder .line:nth-child(1):after { + width: @placeholderLineOneOutdent; +} +.ui.placeholder .line:nth-child(2):after { + width: @placeholderLineTwoOutdent; +} +.ui.placeholder .line:nth-child(3):after { + width: @placeholderLineThreeOutdent; +} +.ui.placeholder .line:nth-child(4):after { + width: @placeholderLineFourOutdent; +} +.ui.placeholder .line:nth-child(5):after { + width: @placeholderLineFiveOutdent; +} + +/* Header Line 1 & 2*/ +.ui.placeholder .header .line { + margin-bottom: @placeholderHeaderLineHeight; +} +.ui.placeholder .header .line:before, +.ui.placeholder .header .line:after { + height: @placeholderHeaderLineHeight; +} +.ui.placeholder .header .line:not(:first-child) { + margin-top: @placeholderHeaderLineHeight; +} +.ui.placeholder .header .line:after { + width: @placeholderHeaderLineOneOutdent; +} +.ui.placeholder .header .line:nth-child(2):after { + width: @placeholderHeaderLineTwoOutdent; +} + +/* Image Header */ +.ui.placeholder .image.header .line { + margin-left: @placeholderImageWidth; +} +.ui.placeholder .image.header .line:before { + width: @placeholderImageTextIndent; +} +.ui.placeholder .image.header:after { + display: block; + height: @placeholderLineMargin; + content: ''; + margin-left: @placeholderImageWidth; +} + +/* Spacing */ +.ui.placeholder .image .line:first-child, +.ui.placeholder .paragraph .line:first-child, +.ui.placeholder .header .line:first-child { + height: 0.01px; +} +.ui.placeholder .image:not(:first-child):before, +.ui.placeholder .paragraph:not(:first-child):before, +.ui.placeholder .header:not(:first-child):before { + height: @placeholderSpacing; + content: ''; + display: block; +} + +/* Inverted Content Loader */ +.ui.inverted.placeholder { + background-image: @placeholderInvertedLoadingGradient; +} +.ui.inverted.placeholder, +.ui.inverted.placeholder > :before, +.ui.inverted.placeholder .image.header:after, +.ui.inverted.placeholder .line, +.ui.inverted.placeholder .line:after { + background-color: @black; +} + +/******************************* + Variations +*******************************/ + + +/*------------------- + Sizes +--------------------*/ + +.ui.placeholder .full.line.line.line:after { + width: @placeholderFullLineOutdent; +} +.ui.placeholder .very.long.line.line.line:after { + width: @placeholderVeryLongLineOutdent; +} +.ui.placeholder .long.line.line.line:after { + width: @placeholderLongLineOutdent; +} +.ui.placeholder .medium.line.line.line:after { + width: @placeholderMediumLineOutdent; +} +.ui.placeholder .short.line.line.line:after { + width: @placeholderShortLineOutdent; +} +.ui.placeholder .very.short.line.line.line:after { + width: @placeholderVeryShortLineOutdent; +} + + +/*------------------- + Fluid +--------------------*/ + +.ui.fluid.placeholder { + max-width: none; +} diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/rail.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/rail.less new file mode 100644 index 00000000..7eacee74 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/rail.less @@ -0,0 +1,154 @@ +/*! + * # Semantic UI - Rail + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Theme +*******************************/ + +@type : 'element'; +@element : 'rail'; + +@import (multiple) '../../theme.config'; + +/******************************* + Rails +*******************************/ + +.ui.rail { + position: absolute; + top: 0%; + width: @width; + height: @height; +} + +.ui.left.rail { + left: auto; + right: 100%; + padding: 0em @splitDistance 0em 0em; + margin: 0em @splitDistance 0em 0em; +} + +.ui.right.rail { + left: 100%; + right: auto; + padding: 0em 0em 0em @splitDistance; + margin: 0em 0em 0em @splitDistance; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Internal +---------------*/ + +.ui.left.internal.rail { + left: 0%; + right: auto; + padding: 0em 0em 0em @splitDistance; + margin: 0em 0em 0em @splitDistance; +} + +.ui.right.internal.rail { + left: auto; + right: 0%; + padding: 0em @splitDistance 0em 0em; + margin: 0em @splitDistance 0em 0em; +} + + +/*-------------- + Dividing +---------------*/ + +.ui.dividing.rail { + width: @dividingWidth; +} +.ui.left.dividing.rail { + padding: 0em @splitDividingDistance 0em 0em; + margin: 0em @splitDividingDistance 0em 0em; + border-right: @dividingBorder; +} +.ui.right.dividing.rail { + border-left: @dividingBorder; + padding: 0em 0em 0em @splitDividingDistance; + margin: 0em 0em 0em @splitDividingDistance; +} + +/*-------------- + Distance +---------------*/ + +.ui.close.rail { + width: @closeWidth; +} +.ui.close.left.rail { + padding: 0em @splitCloseDistance 0em 0em; + margin: 0em @splitCloseDistance 0em 0em; +} +.ui.close.right.rail { + padding: 0em 0em 0em @splitCloseDistance; + margin: 0em 0em 0em @splitCloseDistance; +} + +.ui.very.close.rail { + width: @veryCloseWidth; +} +.ui.very.close.left.rail { + padding: 0em @splitVeryCloseDistance 0em 0em; + margin: 0em @splitVeryCloseDistance 0em 0em; +} +.ui.very.close.right.rail { + padding: 0em 0em 0em @splitVeryCloseDistance; + margin: 0em 0em 0em @splitVeryCloseDistance; +} + +/*-------------- + Attached +---------------*/ + +.ui.attached.left.rail, +.ui.attached.right.rail { + padding: 0em; + margin: 0em; +} + +/*-------------- + Sizing +---------------*/ + +.ui.mini.rail { + font-size: @mini; +} +.ui.tiny.rail { + font-size: @tiny; +} +.ui.small.rail { + font-size: @small; +} +.ui.rail { + font-size: @medium; +} +.ui.large.rail { + font-size: @large; +} +.ui.big.rail { + font-size: @big; +} +.ui.huge.rail { + font-size: @huge; +} +.ui.massive.rail { + font-size: @massive; +} + + +.loadUIOverrides(); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/reveal.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/reveal.less new file mode 100644 index 00000000..41b37647 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/reveal.less @@ -0,0 +1,275 @@ +/*! + * # Semantic UI - Reveal + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Theme +*******************************/ + +@type : 'element'; +@element : 'reveal'; + +@import (multiple) '../../theme.config'; + +/******************************* + Reveal +*******************************/ + +.ui.reveal { + display: inherit; + position: relative !important; + font-size: 0em !important; +} + +.ui.reveal > .visible.content { + position: absolute !important; + top: 0em !important; + left: 0em !important; + z-index: @topZIndex !important; + transition: @transition; +} +.ui.reveal > .hidden.content { + position: relative !important; + z-index: @bottomZIndex !important; +} + +/* Make sure hovered element is on top of other reveal */ +.ui.active.reveal .visible.content, +.ui.reveal:hover .visible.content { + z-index: @activeZIndex !important; +} + + +/******************************* + Types +*******************************/ + + +/*-------------- + Slide +---------------*/ + +.ui.slide.reveal { + position: relative !important; + overflow: hidden !important; + white-space: nowrap; +} + +.ui.slide.reveal > .content { + display: block; + width: 100%; + white-space: normal; + float: left; + + margin: 0em; + transition: @slideTransition; +} + +.ui.slide.reveal > .visible.content { + position: relative !important; +} +.ui.slide.reveal > .hidden.content { + position: absolute !important; + left: 0% !important; + width: 100% !important; + transform: translateX(100%) !important; +} +.ui.slide.active.reveal > .visible.content, +.ui.slide.reveal:hover > .visible.content { + transform: translateX(-100%) !important; +} +.ui.slide.active.reveal > .hidden.content, +.ui.slide.reveal:hover > .hidden.content { + transform: translateX(0%) !important; +} + +.ui.slide.right.reveal > .visible.content { + transform: translateX(0%) !important; +} +.ui.slide.right.reveal > .hidden.content { + transform: translateX(-100%) !important; +} +.ui.slide.right.active.reveal > .visible.content, +.ui.slide.right.reveal:hover > .visible.content { + transform: translateX(100%) !important; +} +.ui.slide.right.active.reveal > .hidden.content, +.ui.slide.right.reveal:hover > .hidden.content { + transform: translateX(0%) !important; +} + +.ui.slide.up.reveal > .hidden.content { + transform: translateY(100%) !important; +} +.ui.slide.up.active.reveal > .visible.content, +.ui.slide.up.reveal:hover > .visible.content { + transform: translateY(-100%) !important; +} +.ui.slide.up.active.reveal > .hidden.content, +.ui.slide.up.reveal:hover > .hidden.content { + transform: translateY(0%) !important; +} + +.ui.slide.down.reveal > .hidden.content { + transform: translateY(-100%) !important; +} +.ui.slide.down.active.reveal > .visible.content, +.ui.slide.down.reveal:hover > .visible.content { + transform: translateY(100%) !important; +} +.ui.slide.down.active.reveal > .hidden.content, +.ui.slide.down.reveal:hover > .hidden.content { + transform: translateY(0%) !important; +} + + +/*-------------- + Fade +---------------*/ + +.ui.fade.reveal > .visible.content { + opacity: 1; +} +.ui.fade.active.reveal > .visible.content, +.ui.fade.reveal:hover > .visible.content { + opacity: 0; +} + + +/*-------------- + Move +---------------*/ + +.ui.move.reveal { + position: relative !important; + overflow: hidden !important; + white-space: nowrap; +} + +.ui.move.reveal > .content { + display: block; + float: left; + white-space: normal; + + margin: 0em; + transition: @moveTransition; +} + +.ui.move.reveal > .visible.content { + position: relative !important; +} +.ui.move.reveal > .hidden.content { + position: absolute !important; + left: 0% !important; + width: 100% !important; +} +.ui.move.active.reveal > .visible.content, +.ui.move.reveal:hover > .visible.content { + transform: translateX(-100%) !important; +} +.ui.move.right.active.reveal > .visible.content, +.ui.move.right.reveal:hover > .visible.content { + transform: translateX(100%) !important; +} +.ui.move.up.active.reveal > .visible.content, +.ui.move.up.reveal:hover > .visible.content { + transform: translateY(-100%) !important; +} +.ui.move.down.active.reveal > .visible.content, +.ui.move.down.reveal:hover > .visible.content { + transform: translateY(100%) !important; +} + + + +/*-------------- + Rotate +---------------*/ + +.ui.rotate.reveal > .visible.content { + transition-duration: @transitionDuration; + transform: rotate(0deg); +} + +.ui.rotate.reveal > .visible.content, +.ui.rotate.right.reveal > .visible.content { + transform-origin: bottom right; +} +.ui.rotate.active.reveal > .visible.content, +.ui.rotate.reveal:hover > .visible.content, +.ui.rotate.right.active.reveal > .visible.content, +.ui.rotate.right.reveal:hover > .visible.content { + transform: rotate(@rotateDegrees); +} + +.ui.rotate.left.reveal > .visible.content { + transform-origin: bottom left; +} +.ui.rotate.left.active.reveal > .visible.content, +.ui.rotate.left.reveal:hover > .visible.content { + transform: rotate(-@rotateDegrees); +} + +/******************************* + States +*******************************/ + +.ui.disabled.reveal:hover > .visible.visible.content { + position: static !important; + display: block !important; + opacity: 1 !important; + top: 0 !important; + left: 0 !important; + right: auto !important; + bottom: auto !important; + transform: none !important; +} +.ui.disabled.reveal:hover > .hidden.hidden.content { + display: none !important; +} + + +/******************************* + Coupling +*******************************/ + +.ui.reveal > .ui.ribbon.label { + z-index: @overlayZIndex; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Visible +---------------*/ + +.ui.visible.reveal { + overflow: visible; +} + +/*-------------- + Instant +---------------*/ + +.ui.instant.reveal > .content { + transition-delay: 0s !important; +} + + +/*-------------- + Sizing +---------------*/ + +.ui.reveal > .content { + font-size: @medium !important; +} + +.loadUIOverrides(); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/segment.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/segment.less new file mode 100644 index 00000000..34d5a424 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/segment.less @@ -0,0 +1,829 @@ +/*! + * # Semantic UI - Segment + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Theme +*******************************/ + +@type : 'element'; +@element : 'segment'; + +@import (multiple) '../../theme.config'; + +/******************************* + Segment +*******************************/ + +.ui.segment { + position: relative; + background: @background; + box-shadow: @boxShadow; + margin: @margin; + padding: @padding; + border-radius: @borderRadius; + border: @border; +} + +.ui.segment:first-child { + margin-top: 0em; +} +.ui.segment:last-child { + margin-bottom: 0em; +} + + +/* Vertical */ +.ui.vertical.segment { + margin: 0em; + padding-left: 0em; + padding-right: 0em; + + background: none transparent; + border-radius: 0px; + box-shadow: none; + border: none; + border-bottom: @borderWidth solid @borderColor; +} +.ui.vertical.segment:last-child { + border-bottom: none; +} + + +/*------------------- + Loose Coupling +--------------------*/ + +/* Header */ +.ui.inverted.segment > .ui.header { + color: @white; +} + +/* Label */ +.ui[class*="bottom attached"].segment > [class*="top attached"].label { + border-top-left-radius: 0em; + border-top-right-radius: 0em; +} +.ui[class*="top attached"].segment > [class*="bottom attached"].label { + border-bottom-left-radius: 0em; + border-bottom-right-radius: 0em; +} +.ui.attached.segment:not(.top):not(.bottom) > [class*="top attached"].label { + border-top-left-radius: 0em; + border-top-right-radius: 0em; +} +.ui.attached.segment:not(.top):not(.bottom) > [class*="bottom attached"].label { + border-bottom-left-radius: 0em; + border-bottom-right-radius: 0em; +} + +/* Grid */ +.ui.page.grid.segment, +.ui.grid > .row > .ui.segment.column, +.ui.grid > .ui.segment.column { + padding-top: @pageGridMargin; + padding-bottom: @pageGridMargin; +} +.ui.grid.segment { + margin: @margin; + border-radius: @borderRadius; +} + +/* Table */ +.ui.basic.table.segment { + background: @background; + border: @border; + box-shadow: @boxShadow; +} +.ui[class*="very basic"].table.segment { + padding: @padding; +} + + +/******************************* + Types +*******************************/ + + +/*------------------- + Placeholder +--------------------*/ + +.ui.placeholder.segment { + display: flex; + flex-direction: column; + justify-content: center; + align-items: stretch; + max-width: initial; + animation: none; + overflow: visible; + padding: @placeholderPadding; + min-height: @placeholderMinHeight; + background: @placeholderBackground; + border-color: @placeholderBorderColor; + box-shadow: @placeholderBoxShadow; +} + +.ui.placeholder.segment .button, +.ui.placeholder.segment textarea { + display: block; +} +.ui.placeholder.segment .field, +.ui.placeholder.segment textarea, +.ui.placeholder.segment > .ui.input, +.ui.placeholder.segment .button { + max-width: @placeholderContentMaxWidth; + margin-left: auto; + margin-right: auto; +} +.ui.placeholder.segment .column .button, +.ui.placeholder.segment .column .field, +.ui.placeholder.segment .column textarea, +.ui.placeholder.segment .column > .ui.input { + max-width: @placeholderContentMaxWidth; + margin-left: auto; + margin-right: auto; +} + +.ui.placeholder.segment > .inline { + align-self: center; +} +.ui.placeholder.segment > .inline > .button { + display: inline-block; + width: auto; + margin: @placeholderContentInlineButtonMargin; +} +.ui.placeholder.segment > .inline > .button:last-child { + margin-right: 0px; +} + + +/*------------------- + Piled +--------------------*/ + +.ui.piled.segments, +.ui.piled.segment { + margin: @piledMargin 0em; + box-shadow: @piledBoxShadow; + z-index: @piledZIndex; +} +.ui.piled.segment:first-child { + margin-top: 0em; +} +.ui.piled.segment:last-child { + margin-bottom: 0em; +} +.ui.piled.segments:after, +.ui.piled.segments:before, +.ui.piled.segment:after, +.ui.piled.segment:before { + background-color: @white; + visibility: visible; + content: ''; + display: block; + height: 100%; + left: 0px; + position: absolute; + width: 100%; + border: @piledBorder; + box-shadow: @piledBoxShadow; +} +.ui.piled.segments:before, +.ui.piled.segment:before { + transform: rotate(-@piledDegrees); + top: 0; + z-index: -2; +} +.ui.piled.segments:after, +.ui.piled.segment:after { + transform: rotate(@piledDegrees); + top: 0; + z-index: -1; +} + +/* Piled Attached */ +.ui[class*="top attached"].piled.segment { + margin-top: @piledMargin; + margin-bottom: 0em; +} +.ui.piled.segment[class*="top attached"]:first-child { + margin-top: 0em; +} +.ui.piled.segment[class*="bottom attached"] { + margin-top: 0em; + margin-bottom: @piledMargin; +} +.ui.piled.segment[class*="bottom attached"]:last-child { + margin-bottom: 0em; +} + +/*------------------- + Stacked +--------------------*/ + +.ui.stacked.segment { + padding-bottom: @stackedPadding; +} +.ui.stacked.segments:before, +.ui.stacked.segments:after, +.ui.stacked.segment:before, +.ui.stacked.segment:after { + content: ''; + position: absolute; + bottom: -(@stackedHeight / 2); + left: 0%; + + border-top: 1px solid @borderColor; + background: @stackedPageBackground; + + width: 100%; + height: @stackedHeight; + visibility: visible; +} +.ui.stacked.segments:before, +.ui.stacked.segment:before { + display: none; +} + +/* Add additional page */ +.ui.tall.stacked.segments:before, +.ui.tall.stacked.segment:before { + display: block; + bottom: 0px; +} + +/* Inverted */ +.ui.stacked.inverted.segments:before, +.ui.stacked.inverted.segments:after, +.ui.stacked.inverted.segment:before, +.ui.stacked.inverted.segment:after { + background-color: @subtleTransparentBlack; + border-top: 1px solid @selectedBorderColor; +} + +/*------------------- + Padded +--------------------*/ + +.ui.padded.segment { + padding: @paddedSegmentPadding; +} + +.ui[class*="very padded"].segment { + padding: @veryPaddedSegmentPadding; +} + +/* Padded vertical */ +.ui.padded.segment.vertical.segment, +.ui[class*="very padded"].vertical.segment { + padding-left: 0px; + padding-right: 0px; +} + +/*------------------- + Compact +--------------------*/ + +.ui.compact.segment { + display: table; +} + +/* Compact Group */ +.ui.compact.segments { + display: inline-flex; +} +.ui.compact.segments .segment, +.ui.segments .compact.segment { + display: block; + flex: 0 1 auto; +} + +/*------------------- + Circular +--------------------*/ + +.ui.circular.segment { + display: table-cell; + padding: @circularPadding; + text-align: center; + vertical-align: middle; + border-radius: 500em; +} + +/*------------------- + Raised +--------------------*/ + +.ui.raised.segments, +.ui.raised.segment { + box-shadow: @raisedBoxShadow; +} + + +/******************************* + Groups +*******************************/ + +/* Group */ +.ui.segments { + flex-direction: column; + position: relative; + margin: @groupedMargin; + border: @groupedBorder; + box-shadow: @groupedBoxShadow; + border-radius: @groupedBorderRadius; +} +.ui.segments:first-child { + margin-top: 0em; +} +.ui.segments:last-child { + margin-bottom: 0em; +} + + +/* Nested Segment */ +.ui.segments > .segment { + top: 0px; + bottom: 0px; + border-radius: 0px; + margin: @groupedSegmentMargin; + width: @groupedSegmentWidth; + box-shadow: @groupedSegmentBoxShadow; + border: @groupedSegmentBorder; + border-top: @groupedSegmentDivider; +} + +.ui.segments:not(.horizontal) > .segment:first-child { + top: @attachedTopOffset; + bottom: 0px; + border-top: none; + margin-top: 0em; + bottom: 0px; + margin-bottom: 0em; + top: @attachedTopOffset; + border-radius: @borderRadius @borderRadius 0em 0em; +} + +/* Bottom */ +.ui.segments:not(.horizontal) > .segment:last-child { + top: @attachedBottomOffset; + bottom: 0px; + margin-top: 0em; + margin-bottom: 0em; + box-shadow: @attachedBottomBoxShadow; + border-radius: 0em 0em @borderRadius @borderRadius; +} + +/* Only */ +.ui.segments:not(.horizontal) > .segment:only-child { + border-radius: @borderRadius; +} + + +/* Nested Group */ +.ui.segments > .ui.segments { + border-top: @groupedSegmentDivider; + margin: @nestedGroupMargin; +} +.ui.segments > .segments:first-child { + border-top: none; +} +.ui.segments > .segment + .segments:not(.horizontal) { + margin-top: 0em; +} + +/* Horizontal Group */ +.ui.horizontal.segments { + display: flex; + flex-direction: row; + background-color: transparent; + border-radius: 0px; + padding: 0em; + background-color: @background; + box-shadow: @boxShadow; + margin: @margin; + border-radius: @borderRadius; + border: @border; +} + +/* Nested Horizontal Group */ +.ui.segments > .horizontal.segments { + margin: 0em; + background-color: transparent; + border-radius: 0px; + border: none; + box-shadow: none; + border-top: @groupedSegmentDivider; +} + +/* Horizontal Segment */ +.ui.horizontal.segments > .segment { + flex: 1 1 auto; + -ms-flex: 1 1 0px; /* Solves #2550 MS Flex */ + margin: 0em; + min-width: 0px; + background-color: transparent; + border-radius: 0px; + border: none; + box-shadow: none; + border-left: @borderWidth solid @borderColor; +} + +/* Border Fixes */ +.ui.segments > .horizontal.segments:first-child { + border-top: none; +} +.ui.horizontal.segments > .segment:first-child { + border-left: none; +} + + +/******************************* + States +*******************************/ + +/*-------------- + Disabled +---------------*/ + +.ui.disabled.segment { + opacity: @disabledOpacity; + color: @disabledTextColor; +} + +/*-------------- + Loading +---------------*/ + +.ui.loading.segment { + position: relative; + cursor: default; + pointer-events: none; + text-shadow: none !important; + color: transparent !important; + transition: all 0s linear; +} +.ui.loading.segment:before { + position: absolute; + content: ''; + top: 0%; + left: 0%; + background: @loaderDimmerColor; + width: 100%; + height: 100%; + border-radius: @borderRadius; + z-index: @loaderDimmerZIndex; +} +.ui.loading.segment:after { + position: absolute; + content: ''; + top: 50%; + left: 50%; + + margin: @loaderMargin; + width: @loaderSize; + height: @loaderSize; + + animation: segment-spin @loaderSpeed linear; + animation-iteration-count: infinite; + + border-radius: @circularRadius; + + border-color: @loaderLineColor @loaderFillColor @loaderFillColor @loaderFillColor; + border-style: solid; + border-width: @loaderLineWidth; + + box-shadow: 0px 0px 0px 1px transparent; + visibility: visible; + z-index: @loaderLineZIndex; +} + +@keyframes segment-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + + +/******************************* + Variations +*******************************/ + + +/*------------------- + Basic +--------------------*/ + +.ui.basic.segment { + background: @basicBackground; + box-shadow: @basicBoxShadow; + border: @basicBorder; + border-radius: @basicBorderRadius; +} + +/*------------------- + Clearing +--------------------*/ + +.ui.clearing.segment:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +/*------------------- + Colors +--------------------*/ + +/* Red */ +.ui.red.segment:not(.inverted) { + border-top: @coloredBorderSize solid @red !important; +} +.ui.inverted.red.segment { + background-color: @red !important; + color: @white !important; +} + +/* Orange */ +.ui.orange.segment:not(.inverted) { + border-top: @coloredBorderSize solid @orange !important; +} +.ui.inverted.orange.segment { + background-color: @orange !important; + color: @white !important; +} + +/* Yellow */ +.ui.yellow.segment:not(.inverted) { + border-top: @coloredBorderSize solid @yellow !important; +} +.ui.inverted.yellow.segment { + background-color: @yellow !important; + color: @white !important; +} + +/* Olive */ +.ui.olive.segment:not(.inverted) { + border-top: @coloredBorderSize solid @olive !important; +} +.ui.inverted.olive.segment { + background-color: @olive !important; + color: @white !important; +} + +/* Green */ +.ui.green.segment:not(.inverted) { + border-top: @coloredBorderSize solid @green !important; +} +.ui.inverted.green.segment { + background-color: @green !important; + color: @white !important; +} + +/* Teal */ +.ui.teal.segment:not(.inverted) { + border-top: @coloredBorderSize solid @teal !important; +} +.ui.inverted.teal.segment { + background-color: @teal !important; + color: @white !important; +} + +/* Blue */ +.ui.blue.segment:not(.inverted) { + border-top: @coloredBorderSize solid @blue !important; +} +.ui.inverted.blue.segment { + background-color: @blue !important; + color: @white !important; +} + +/* Violet */ +.ui.violet.segment:not(.inverted) { + border-top: @coloredBorderSize solid @violet !important; +} +.ui.inverted.violet.segment { + background-color: @violet !important; + color: @white !important; +} + +/* Purple */ +.ui.purple.segment:not(.inverted) { + border-top: @coloredBorderSize solid @purple !important; +} +.ui.inverted.purple.segment { + background-color: @purple !important; + color: @white !important; +} + +/* Pink */ +.ui.pink.segment:not(.inverted) { + border-top: @coloredBorderSize solid @pink !important; +} +.ui.inverted.pink.segment { + background-color: @pink !important; + color: @white !important; +} + +/* Brown */ +.ui.brown.segment:not(.inverted) { + border-top: @coloredBorderSize solid @brown !important; +} +.ui.inverted.brown.segment { + background-color: @brown !important; + color: @white !important; +} + +/* Grey */ +.ui.grey.segment:not(.inverted) { + border-top: @coloredBorderSize solid @grey !important; +} +.ui.inverted.grey.segment { + background-color: @grey !important; + color: @white !important; +} + +/* Black */ +.ui.black.segment:not(.inverted) { + border-top: @coloredBorderSize solid @black !important; +} +.ui.inverted.black.segment { + background-color: @black !important; + color: @white !important; +} + +/*------------------- + Aligned +--------------------*/ + +.ui[class*="left aligned"].segment { + text-align: left; +} +.ui[class*="right aligned"].segment { + text-align: right; +} +.ui[class*="center aligned"].segment { + text-align: center; +} + +/*------------------- + Floated +--------------------*/ + +.ui.floated.segment, +.ui[class*="left floated"].segment { + float: left; + margin-right: @floatedDistance; +} +.ui[class*="right floated"].segment { + float: right; + margin-left: @floatedDistance; +} + + +/*------------------- + Inverted +--------------------*/ + +.ui.inverted.segment { + border: none; + box-shadow: none; +} +.ui.inverted.segment, +.ui.primary.inverted.segment { + background: @invertedBackground; + color: @invertedTextColor; +} + +/* Nested */ +.ui.inverted.segment .segment { + color: @textColor; +} +.ui.inverted.segment .inverted.segment { + color: @invertedTextColor; +} + +/* Attached */ +.ui.inverted.attached.segment { + border-color: @solidWhiteBorderColor; +} + +/*------------------- + Emphasis +--------------------*/ + +/* Secondary */ +.ui.secondary.segment { + background: @secondaryBackground; + color: @secondaryColor; +} +.ui.secondary.inverted.segment { + background: @secondaryInvertedBackground; + color: @secondaryInvertedColor; +} + +/* Tertiary */ +.ui.tertiary.segment { + background: @tertiaryBackground; + color: @tertiaryColor; +} +.ui.tertiary.inverted.segment { + background: @tertiaryInvertedBackground; + color: @tertiaryInvertedColor; +} + + +/*------------------- + Attached +--------------------*/ + +/* Middle */ +.ui.attached.segment { + top: 0px; + bottom: 0px; + border-radius: 0px; + margin: 0em @attachedHorizontalOffset; + width: @attachedWidth; + max-width: @attachedWidth; + box-shadow: @attachedBoxShadow; + border: @attachedBorder; +} +.ui.attached:not(.message) + .ui.attached.segment:not(.top) { + border-top: none; +} + +/* Top */ +.ui[class*="top attached"].segment { + bottom: 0px; + margin-bottom: 0em; + top: @attachedTopOffset; + margin-top: @verticalMargin; + border-radius: @borderRadius @borderRadius 0em 0em; +} +.ui.segment[class*="top attached"]:first-child { + margin-top: 0em; +} + +/* Bottom */ +.ui.segment[class*="bottom attached"] { + bottom: 0px; + margin-top: 0em; + top: @attachedBottomOffset; + margin-bottom: @verticalMargin; + box-shadow: @attachedBottomBoxShadow; + border-radius: 0em 0em @borderRadius @borderRadius; +} +.ui.segment[class*="bottom attached"]:last-child { + margin-bottom: 0em; +} + +/*------------------- + Size +--------------------*/ + +.ui.mini.segments .segment, +.ui.mini.segment { + font-size: @mini; +} +.ui.tiny.segments .segment, +.ui.tiny.segment { + font-size: @tiny; +} +.ui.small.segments .segment, +.ui.small.segment { + font-size: @small; +} +.ui.segments .segment, +.ui.segment { + font-size: @medium; +} +.ui.large.segments .segment, +.ui.large.segment { + font-size: @large; +} +.ui.big.segments .segment, +.ui.big.segment { + font-size: @big; +} +.ui.huge.segments .segment, +.ui.huge.segment { + font-size: @huge; +} +.ui.massive.segments .segment, +.ui.massive.segment { + font-size: @massive; +} + +.loadUIOverrides(); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/step.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/step.less new file mode 100644 index 00000000..5c4aff2a --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/elements/step.less @@ -0,0 +1,562 @@ +/*! + * # Semantic UI - Step + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + + +/******************************* + Step +*******************************/ + +/*-------------- + Load Theme +---------------*/ + +@type : 'element'; +@element : 'step'; + +@import (multiple) '../../theme.config'; + +/******************************* + Plural +*******************************/ + +.ui.steps { + display: inline-flex; + flex-direction: row; + align-items: stretch; + margin: @stepMargin; + background: @stepsBackground; + box-shadow: @stepsBoxShadow; + line-height: @lineHeight; + border-radius: @stepsBorderRadius; + border: @stepsBorder; +} + +/* First Steps */ +.ui.steps:first-child { + margin-top: 0em; +} + +/* Last Steps */ +.ui.steps:last-child { + margin-bottom: 0em; +} + + +/******************************* + Singular +*******************************/ + +.ui.steps .step { + position: relative; + display: flex; + flex: 1 0 auto; + flex-wrap: wrap; + flex-direction: row; + vertical-align: middle; + align-items: center; + justify-content: @justifyContent; + + margin: @verticalMargin @horizontalMargin; + padding: @verticalPadding @horizontalPadding; + background: @background; + color: @textColor; + box-shadow: @boxShadow; + border-radius: @borderRadius; + border: @border; + border-right: @divider; + transition: @transition; +} + +/* Arrow */ +.ui.steps .step:after { + display: none; + position: absolute; + z-index: 2; + content: ''; + top: @arrowTopOffset; + right: @arrowRightOffset; + border: medium none; + background-color: @arrowBackgroundColor; + width: @arrowSize; + height: @arrowSize; + + border-style: solid; + border-color: @borderColor; + border-width: @arrowBorderWidth; + + transition: @transition; + transform: translateY(-50%) translateX(50%) rotate(-45deg); +} + +/* First Step */ +.ui.steps .step:first-child { + padding-left: @horizontalPadding; + border-radius: @stepsBorderRadius 0em 0em @stepsBorderRadius; +} + +/* Last Step */ +.ui.steps .step:last-child { + border-radius: 0em @stepsBorderRadius @stepsBorderRadius 0em; +} +.ui.steps .step:last-child { + border-right: none; + margin-right: 0em; +} + +/* Only Step */ +.ui.steps .step:only-child { + border-radius: @stepsBorderRadius; +} + + +/******************************* + Content +*******************************/ + +/* Title */ +.ui.steps .step .title { + font-family: @titleFontFamily; + font-size: @titleFontSize; + font-weight: @titleFontWeight; +} +.ui.steps .step > .title { + width: 100%; +} + +/* Description */ +.ui.steps .step .description { + font-weight: @descriptionFontWeight; + font-size: @descriptionFontSize; + color: @descriptionColor; +} +.ui.steps .step > .description { + width: 100%; +} +.ui.steps .step .title ~ .description { + margin-top: @descriptionDistance; +} + +/* Icon */ +.ui.steps .step > .icon { + line-height: 1; + font-size: @iconSize; + margin: 0em @iconDistance 0em 0em; +} +.ui.steps .step > .icon, +.ui.steps .step > .icon ~ .content { + display: block; + flex: 0 1 auto; + align-self: @iconAlign; +} +.ui.steps .step > .icon ~ .content { + flex-grow: 1 0 auto; +} + +/* Horizontal Icon */ +.ui.steps:not(.vertical) .step > .icon { + width: auto; +} + +/* Link */ +.ui.steps .link.step, +.ui.steps a.step { + cursor: pointer; +} + +/******************************* + Types +*******************************/ + +/*-------------- + Ordered +---------------*/ + +.ui.ordered.steps { + counter-reset: ordered; +} +.ui.ordered.steps .step:before { + display: block; + position: static; + text-align: center; + content: counters(ordered, "."); + align-self: @iconAlign; + margin-right: @iconDistance; + font-size: @iconSize; + counter-increment: ordered; + font-family: @orderedFontFamily; + font-weight: @orderedFontWeight; +} + +.ui.ordered.steps .step > * { + display: block; + align-self: @iconAlign; +} + + +/*-------------- + Vertical +---------------*/ + +.ui.vertical.steps { + display: inline-flex; + flex-direction: column; + overflow: visible; +} +.ui.vertical.steps .step { + justify-content: flex-start; + border-radius: @borderRadius; + padding: @verticalPadding @horizontalPadding; + border-right: none; + border-bottom: @verticalDivider; +} +.ui.vertical.steps .step:first-child { + padding: @verticalPadding @horizontalPadding; + border-radius: @stepsBorderRadius @stepsBorderRadius 0em 0em; +} +.ui.vertical.steps .step:last-child { + border-bottom: none; + border-radius: 0em 0em @stepsBorderRadius @stepsBorderRadius; +} +.ui.vertical.steps .step:only-child { + border-radius: @stepsBorderRadius; +} + + +/* Arrow */ +.ui.vertical.steps .step:after { + display: none; +} +.ui.vertical.steps .step:after { + top: @verticalArrowTopOffset; + right: @verticalArrowRightOffset; + border-width: @verticalArrowBorderWidth; +} + +.ui.vertical.steps .step:after { + display: @verticalArrowDisplay; +} +.ui.vertical.steps .active.step:after { + display: @verticalActiveArrowDisplay; +} +.ui.vertical.steps .step:last-child:after { + display: @verticalLastArrowDisplay; +} +.ui.vertical.steps .active.step:last-child:after { + display: @verticalActiveLastArrowDisplay; +} + + +/*--------------- + Responsive +----------------*/ + +/* Mobile (Default) */ +@media only screen and (max-width: (@largestMobileScreen)) { + + .ui.steps:not(.unstackable) { + display: inline-flex; + overflow: visible; + flex-direction: column; + } + .ui.steps:not(.unstackable) .step { + width: 100% !important; + flex-direction: column; + border-radius: @borderRadius; + padding: @verticalPadding @horizontalPadding; + } + .ui.steps:not(.unstackable) .step:first-child { + padding: @verticalPadding @horizontalPadding; + border-radius: @stepsBorderRadius @stepsBorderRadius 0em 0em; + } + .ui.steps:not(.unstackable) .step:last-child { + border-radius: 0em 0em @stepsBorderRadius @stepsBorderRadius; + } + + /* Arrow */ + .ui.steps:not(.unstackable) .step:after { + display: none !important; + } + + /* Content */ + .ui.steps:not(.unstackable) .step .content { + text-align: center; + } + + /* Icon */ + .ui.steps:not(.unstackable) .step > .icon, + .ui.ordered.steps:not(.unstackable) .step:before { + margin: 0em 0em @mobileIconDistance 0em; + } + +} + +/******************************* + States +*******************************/ + +/* Link Hover */ +.ui.steps .link.step:hover::after, +.ui.steps .link.step:hover, +.ui.steps a.step:hover::after, +.ui.steps a.step:hover { + background: @hoverBackground; + color: @hoverColor; +} + +/* Link Down */ +.ui.steps .link.step:active::after, +.ui.steps .link.step:active, +.ui.steps a.step:active::after, +.ui.steps a.step:active { + background: @downBackground; + color: @downColor; +} + +/* Active */ +.ui.steps .step.active { + cursor: auto; + background: @activeBackground; +} +.ui.steps .step.active:after { + background: @activeBackground; +} +.ui.steps .step.active .title { + color: @activeColor; +} +.ui.ordered.steps .step.active:before, +.ui.steps .active.step .icon { + color: @activeIconColor; +} + +/* Active Arrow */ +.ui.steps .step:after { + display: @arrowDisplay; +} +.ui.steps .active.step:after { + display: @activeArrowDisplay; +} +.ui.steps .step:last-child:after { + display: @lastArrowDisplay; +} +.ui.steps .active.step:last-child:after { + display: @activeLastArrowDisplay; +} + +/* Active Hover */ +.ui.steps .link.active.step:hover::after, +.ui.steps .link.active.step:hover, +.ui.steps a.active.step:hover::after, +.ui.steps a.active.step:hover { + cursor: pointer; + background: @activeHoverBackground; + color: @activeHoverColor; +} + +/* Completed */ +.ui.steps .step.completed > .icon:before, +.ui.ordered.steps .step.completed:before { + color: @completedColor; +} + +/* Disabled */ +.ui.steps .disabled.step { + cursor: auto; + background: @disabledBackground; + pointer-events: none; +} +.ui.steps .disabled.step, +.ui.steps .disabled.step .title, +.ui.steps .disabled.step .description { + color: @disabledColor; +} +.ui.steps .disabled.step:after { + background: @disabledBackground; +} + + +/******************************* + Variations +*******************************/ + + +/*-------------- + Stackable +---------------*/ + +/* Tablet Or Below */ +@media only screen and (max-width: @largestTabletScreen) { + +.ui[class*="tablet stackable"].steps { + display: inline-flex; + overflow: visible; + flex-direction: column; +} + +/* Steps */ +.ui[class*="tablet stackable"].steps .step { + flex-direction: column; + border-radius: @borderRadius; + padding: @verticalPadding @horizontalPadding; +} +.ui[class*="tablet stackable"].steps .step:first-child { + padding: @verticalPadding @horizontalPadding; + border-radius: @stepsBorderRadius @stepsBorderRadius 0em 0em; +} +.ui[class*="tablet stackable"].steps .step:last-child { + border-radius: 0em 0em @stepsBorderRadius @stepsBorderRadius; +} + +/* Arrow */ +.ui[class*="tablet stackable"].steps .step:after { + display: none !important; +} + +/* Content */ +.ui[class*="tablet stackable"].steps .step .content { + text-align: center; +} + +/* Icon */ +.ui[class*="tablet stackable"].steps .step > .icon, +.ui[class*="tablet stackable"].ordered.steps .step:before { + margin: 0em 0em @mobileIconDistance 0em; +} + +} + +/*-------------- + Fluid +---------------*/ + +/* Fluid */ +.ui.fluid.steps { + display: flex; + width: 100%; +} + +/*-------------- + Attached +---------------*/ + +/* Top */ +.ui.attached.steps { + width: @attachedWidth !important; + margin: 0em @attachedHorizontalOffset @attachedVerticalOffset; + max-width: @attachedWidth; + border-radius: @stepsBorderRadius @stepsBorderRadius 0em 0em; +} +.ui.attached.steps .step:first-child { + border-radius: @stepsBorderRadius 0em 0em 0em; +} +.ui.attached.steps .step:last-child { + border-radius: 0em @stepsBorderRadius 0em 0em; +} + +/* Bottom */ +.ui.bottom.attached.steps { + margin: @attachedVerticalOffset @attachedHorizontalOffset 0em; + border-radius: 0em 0em @stepsBorderRadius @stepsBorderRadius; +} +.ui.bottom.attached.steps .step:first-child { + border-radius: 0em 0em 0em @stepsBorderRadius; +} +.ui.bottom.attached.steps .step:last-child { + border-radius: 0em 0em @stepsBorderRadius 0em; +} + +/*------------------- + Evenly Divided +--------------------*/ + +.ui.one.steps, +.ui.two.steps, +.ui.three.steps, +.ui.four.steps, +.ui.five.steps, +.ui.six.steps, +.ui.seven.steps, +.ui.eight.steps { + width: 100%; +} +.ui.one.steps > .step, +.ui.two.steps > .step, +.ui.three.steps > .step, +.ui.four.steps > .step, +.ui.five.steps > .step, +.ui.six.steps > .step, +.ui.seven.steps > .step, +.ui.eight.steps > .step { + flex-wrap: nowrap; +} +.ui.one.steps > .step { + width: 100%; +} +.ui.two.steps > .step { + width: 50%; +} +.ui.three.steps > .step { + width: 33.333%; +} +.ui.four.steps > .step { + width: 25%; +} +.ui.five.steps > .step { + width: 20%; +} +.ui.six.steps > .step { + width: 16.666%; +} +.ui.seven.steps > .step { + width: 14.285%; +} +.ui.eight.steps > .step { + width: 12.500%; +} + +/*------------------- + Sizes +--------------------*/ + + +.ui.mini.steps .step, +.ui.mini.step { + font-size: @mini; +} +.ui.tiny.steps .step, +.ui.tiny.step { + font-size: @tiny; +} +.ui.small.steps .step, +.ui.small.step { + font-size: @small; +} +.ui.steps .step, +.ui.step { + font-size: @medium; +} +.ui.large.steps .step, +.ui.large.step { + font-size: @large; +} +.ui.big.steps .step, +.ui.big.step { + font-size: @big; +} +.ui.huge.steps .step, +.ui.huge.step { + font-size: @huge; +} +.ui.massive.steps .step, +.ui.massive.step { + font-size: @massive; +} + + +.loadUIOverrides(); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/globals/reset.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/globals/reset.less new file mode 100644 index 00000000..7514d94a --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/globals/reset.less @@ -0,0 +1,40 @@ +/*! + * # Semantic UI - Reset + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Theme +*******************************/ + +@type : 'global'; +@element : 'reset'; + +@import (multiple) '../../theme.config'; + +/******************************* + Reset +*******************************/ + +/* Border-Box */ +*, +*:before, +*:after { + box-sizing: inherit; +} +html { + box-sizing: border-box; +} + +/* iPad Input Shadows */ +input[type="text"], input[type="email"], input[type="search"], input[type="password"] { + -webkit-appearance: none; + -moz-appearance: none; /* mobile firefox too! */ +} + +.loadUIOverrides(); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/globals/site.js b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/globals/site.js new file mode 100644 index 00000000..63cbd9db --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/globals/site.js @@ -0,0 +1,487 @@ +/*! + * # Semantic UI - Site + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +$.site = $.fn.site = function(parameters) { + var + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.site.settings, parameters) + : $.extend({}, $.site.settings), + + namespace = settings.namespace, + error = settings.error, + + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + + $document = $(document), + $module = $document, + element = this, + instance = $module.data(moduleNamespace), + + module, + returnedValue + ; + module = { + + initialize: function() { + module.instantiate(); + }, + + instantiate: function() { + module.verbose('Storing instance of site', module); + instance = module; + $module + .data(moduleNamespace, module) + ; + }, + + normalize: function() { + module.fix.console(); + module.fix.requestAnimationFrame(); + }, + + fix: { + console: function() { + module.debug('Normalizing window.console'); + if (console === undefined || console.log === undefined) { + module.verbose('Console not available, normalizing events'); + module.disable.console(); + } + if (typeof console.group == 'undefined' || typeof console.groupEnd == 'undefined' || typeof console.groupCollapsed == 'undefined') { + module.verbose('Console group not available, normalizing events'); + window.console.group = function() {}; + window.console.groupEnd = function() {}; + window.console.groupCollapsed = function() {}; + } + if (typeof console.markTimeline == 'undefined') { + module.verbose('Mark timeline not available, normalizing events'); + window.console.markTimeline = function() {}; + } + }, + consoleClear: function() { + module.debug('Disabling programmatic console clearing'); + window.console.clear = function() {}; + }, + requestAnimationFrame: function() { + module.debug('Normalizing requestAnimationFrame'); + if(window.requestAnimationFrame === undefined) { + module.debug('RequestAnimationFrame not available, normalizing event'); + window.requestAnimationFrame = window.requestAnimationFrame + || window.mozRequestAnimationFrame + || window.webkitRequestAnimationFrame + || window.msRequestAnimationFrame + || function(callback) { setTimeout(callback, 0); } + ; + } + } + }, + + moduleExists: function(name) { + return ($.fn[name] !== undefined && $.fn[name].settings !== undefined); + }, + + enabled: { + modules: function(modules) { + var + enabledModules = [] + ; + modules = modules || settings.modules; + $.each(modules, function(index, name) { + if(module.moduleExists(name)) { + enabledModules.push(name); + } + }); + return enabledModules; + } + }, + + disabled: { + modules: function(modules) { + var + disabledModules = [] + ; + modules = modules || settings.modules; + $.each(modules, function(index, name) { + if(!module.moduleExists(name)) { + disabledModules.push(name); + } + }); + return disabledModules; + } + }, + + change: { + setting: function(setting, value, modules, modifyExisting) { + modules = (typeof modules === 'string') + ? (modules === 'all') + ? settings.modules + : [modules] + : modules || settings.modules + ; + modifyExisting = (modifyExisting !== undefined) + ? modifyExisting + : true + ; + $.each(modules, function(index, name) { + var + namespace = (module.moduleExists(name)) + ? $.fn[name].settings.namespace || false + : true, + $existingModules + ; + if(module.moduleExists(name)) { + module.verbose('Changing default setting', setting, value, name); + $.fn[name].settings[setting] = value; + if(modifyExisting && namespace) { + $existingModules = $(':data(module-' + namespace + ')'); + if($existingModules.length > 0) { + module.verbose('Modifying existing settings', $existingModules); + $existingModules[name]('setting', setting, value); + } + } + } + }); + }, + settings: function(newSettings, modules, modifyExisting) { + modules = (typeof modules === 'string') + ? [modules] + : modules || settings.modules + ; + modifyExisting = (modifyExisting !== undefined) + ? modifyExisting + : true + ; + $.each(modules, function(index, name) { + var + $existingModules + ; + if(module.moduleExists(name)) { + module.verbose('Changing default setting', newSettings, name); + $.extend(true, $.fn[name].settings, newSettings); + if(modifyExisting && namespace) { + $existingModules = $(':data(module-' + namespace + ')'); + if($existingModules.length > 0) { + module.verbose('Modifying existing settings', $existingModules); + $existingModules[name]('setting', newSettings); + } + } + } + }); + } + }, + + enable: { + console: function() { + module.console(true); + }, + debug: function(modules, modifyExisting) { + modules = modules || settings.modules; + module.debug('Enabling debug for modules', modules); + module.change.setting('debug', true, modules, modifyExisting); + }, + verbose: function(modules, modifyExisting) { + modules = modules || settings.modules; + module.debug('Enabling verbose debug for modules', modules); + module.change.setting('verbose', true, modules, modifyExisting); + } + }, + disable: { + console: function() { + module.console(false); + }, + debug: function(modules, modifyExisting) { + modules = modules || settings.modules; + module.debug('Disabling debug for modules', modules); + module.change.setting('debug', false, modules, modifyExisting); + }, + verbose: function(modules, modifyExisting) { + modules = modules || settings.modules; + module.debug('Disabling verbose debug for modules', modules); + module.change.setting('verbose', false, modules, modifyExisting); + } + }, + + console: function(enable) { + if(enable) { + if(instance.cache.console === undefined) { + module.error(error.console); + return; + } + module.debug('Restoring console function'); + window.console = instance.cache.console; + } + else { + module.debug('Disabling console function'); + instance.cache.console = window.console; + window.console = { + clear : function(){}, + error : function(){}, + group : function(){}, + groupCollapsed : function(){}, + groupEnd : function(){}, + info : function(){}, + log : function(){}, + markTimeline : function(){}, + warn : function(){} + }; + } + }, + + destroy: function() { + module.verbose('Destroying previous site for', $module); + $module + .removeData(moduleNamespace) + ; + }, + + cache: {}, + + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Element' : element, + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 500); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + object = instance, + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && object !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) { + object = object[camelCaseValue]; + } + else if( object[camelCaseValue] !== undefined ) { + found = object[camelCaseValue]; + return false; + } + else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) { + object = object[value]; + } + else if( object[value] !== undefined ) { + found = object[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + module.destroy(); + } + module.initialize(); + } + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.site.settings = { + + name : 'Site', + namespace : 'site', + + error : { + console : 'Console cannot be restored, most likely it was overwritten outside of module', + method : 'The method you called is not defined.' + }, + + debug : false, + verbose : false, + performance : true, + + modules: [ + 'accordion', + 'api', + 'checkbox', + 'dimmer', + 'dropdown', + 'embed', + 'form', + 'modal', + 'nag', + 'popup', + 'rating', + 'shape', + 'sidebar', + 'state', + 'sticky', + 'tab', + 'transition', + 'visit', + 'visibility' + ], + + siteNamespace : 'site', + namespaceStub : { + cache : {}, + config : {}, + sections : {}, + section : {}, + utilities : {} + } + +}; + +// allows for selection of elements with data attributes +$.extend($.expr[ ":" ], { + data: ($.expr.createPseudo) + ? $.expr.createPseudo(function(dataName) { + return function(elem) { + return !!$.data(elem, dataName); + }; + }) + : function(elem, i, match) { + // support: jQuery < 1.8 + return !!$.data(elem, match[ 3 ]); + } +}); + + +})( jQuery, window, document ); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/globals/site.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/globals/site.less new file mode 100644 index 00000000..ffe558b4 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/globals/site.less @@ -0,0 +1,208 @@ +/*! + * # Semantic UI - Site + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + + +/******************************* + Theme +*******************************/ + +@type : 'global'; +@element : 'site'; + +@import (multiple) '../../theme.config'; + +/******************************* + Page +*******************************/ + +.loadFonts(); + +html, +body { + height: 100%; +} + +html { + font-size: @emSize; +} + +body { + margin: 0px; + padding: 0px; + overflow-x: @pageOverflowX; + min-width: @pageMinWidth; + background: @pageBackground; + font-family: @pageFont; + font-size: @fontSize; + line-height: @lineHeight; + color: @textColor; + font-smoothing: @fontSmoothing; +} + +/******************************* + Headers +*******************************/ + +h1, +h2, +h3, +h4, +h5 { + font-family: @headerFont; + line-height: @headerLineHeight; + margin: @headerMargin; + font-weight: @headerFontWeight; + padding: 0em; +} + +h1 { + min-height: 1rem; + font-size: @h1; +} +h2 { + font-size: @h2; +} +h3 { + font-size: @h3; +} +h4 { + font-size: @h4; +} +h5 { + font-size: @h5; +} + +h1:first-child, +h2:first-child, +h3:first-child, +h4:first-child, +h5:first-child { + margin-top: 0em; +} + +h1:last-child, +h2:last-child, +h3:last-child, +h4:last-child, +h5:last-child { + margin-bottom: 0em; +} + + +/******************************* + Text +*******************************/ + +p { + margin: @paragraphMargin; + line-height: @paragraphLineHeight; +} +p:first-child { + margin-top: 0em; +} +p:last-child { + margin-bottom: 0em; +} + +/*------------------- + Links +--------------------*/ + +a { + color: @linkColor; + text-decoration: @linkUnderline; +} +a:hover { + color: @linkHoverColor; + text-decoration: @linkHoverUnderline; +} + + +/******************************* + Scrollbars +*******************************/ + +.addScrollbars() when (@useCustomScrollbars) { + + /* Force Simple Scrollbars */ + body ::-webkit-scrollbar { + -webkit-appearance: none; + width: @customScrollbarWidth; + height: @customScrollbarHeight; + } + body ::-webkit-scrollbar-track { + background: @trackBackground; + border-radius: @trackBorderRadius; + } + body ::-webkit-scrollbar-thumb { + cursor: pointer; + border-radius: @thumbBorderRadius; + background: @thumbBackground; + transition: @thumbTransition; + } + body ::-webkit-scrollbar-thumb:window-inactive { + background: @thumbInactiveBackground; + } + body ::-webkit-scrollbar-thumb:hover { + background: @thumbHoverBackground; + } + + /* Inverted UI */ + body .ui.inverted::-webkit-scrollbar-track { + background: @trackInvertedBackground; + } + body .ui.inverted::-webkit-scrollbar-thumb { + background: @thumbInvertedBackground; + } + body .ui.inverted::-webkit-scrollbar-thumb:window-inactive { + background: @thumbInvertedInactiveBackground; + } + body .ui.inverted::-webkit-scrollbar-thumb:hover { + background: @thumbInvertedHoverBackground; + } +} + +/******************************* + Highlighting +*******************************/ + +/* Site */ +::-webkit-selection { + background-color: @highlightBackground; + color: @highlightColor; +} +::-moz-selection { + background-color: @highlightBackground; + color: @highlightColor; +} +::selection { + background-color: @highlightBackground; + color: @highlightColor; +} + +/* Form */ +textarea::-webkit-selection, +input::-webkit-selection { + background-color: @inputHighlightBackground; + color: @inputHighlightColor; +} +textarea::-moz-selection, +input::-moz-selection { + background-color: @inputHighlightBackground; + color: @inputHighlightColor; +} +textarea::selection, +input::selection { + background-color: @inputHighlightBackground; + color: @inputHighlightColor; +} + +.addScrollbars(); +.loadUIOverrides(); diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/modules/accordion.js b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/modules/accordion.js new file mode 100644 index 00000000..818e3d62 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/modules/accordion.js @@ -0,0 +1,613 @@ +/*! + * # Semantic UI - Accordion + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +'use strict'; + +window = (typeof window != 'undefined' && window.Math == Math) + ? window + : (typeof self != 'undefined' && self.Math == Math) + ? self + : Function('return this')() +; + +$.fn.accordion = function(parameters) { + var + $allModules = $(this), + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + + requestAnimationFrame = window.requestAnimationFrame + || window.mozRequestAnimationFrame + || window.webkitRequestAnimationFrame + || window.msRequestAnimationFrame + || function(callback) { setTimeout(callback, 0); }, + + returnedValue + ; + $allModules + .each(function() { + var + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.fn.accordion.settings, parameters) + : $.extend({}, $.fn.accordion.settings), + + className = settings.className, + namespace = settings.namespace, + selector = settings.selector, + error = settings.error, + + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + moduleSelector = $allModules.selector || '', + + $module = $(this), + $title = $module.find(selector.title), + $content = $module.find(selector.content), + + element = this, + instance = $module.data(moduleNamespace), + observer, + module + ; + + module = { + + initialize: function() { + module.debug('Initializing', $module); + module.bind.events(); + if(settings.observeChanges) { + module.observeChanges(); + } + module.instantiate(); + }, + + instantiate: function() { + instance = module; + $module + .data(moduleNamespace, module) + ; + }, + + destroy: function() { + module.debug('Destroying previous instance', $module); + $module + .off(eventNamespace) + .removeData(moduleNamespace) + ; + }, + + refresh: function() { + $title = $module.find(selector.title); + $content = $module.find(selector.content); + }, + + observeChanges: function() { + if('MutationObserver' in window) { + observer = new MutationObserver(function(mutations) { + module.debug('DOM tree modified, updating selector cache'); + module.refresh(); + }); + observer.observe(element, { + childList : true, + subtree : true + }); + module.debug('Setting up mutation observer', observer); + } + }, + + bind: { + events: function() { + module.debug('Binding delegated events'); + $module + .on(settings.on + eventNamespace, selector.trigger, module.event.click) + ; + } + }, + + event: { + click: function() { + module.toggle.call(this); + } + }, + + toggle: function(query) { + var + $activeTitle = (query !== undefined) + ? (typeof query === 'number') + ? $title.eq(query) + : $(query).closest(selector.title) + : $(this).closest(selector.title), + $activeContent = $activeTitle.next($content), + isAnimating = $activeContent.hasClass(className.animating), + isActive = $activeContent.hasClass(className.active), + isOpen = (isActive && !isAnimating), + isOpening = (!isActive && isAnimating) + ; + module.debug('Toggling visibility of content', $activeTitle); + if(isOpen || isOpening) { + if(settings.collapsible) { + module.close.call($activeTitle); + } + else { + module.debug('Cannot close accordion content collapsing is disabled'); + } + } + else { + module.open.call($activeTitle); + } + }, + + open: function(query) { + var + $activeTitle = (query !== undefined) + ? (typeof query === 'number') + ? $title.eq(query) + : $(query).closest(selector.title) + : $(this).closest(selector.title), + $activeContent = $activeTitle.next($content), + isAnimating = $activeContent.hasClass(className.animating), + isActive = $activeContent.hasClass(className.active), + isOpen = (isActive || isAnimating) + ; + if(isOpen) { + module.debug('Accordion already open, skipping', $activeContent); + return; + } + module.debug('Opening accordion content', $activeTitle); + settings.onOpening.call($activeContent); + settings.onChanging.call($activeContent); + if(settings.exclusive) { + module.closeOthers.call($activeTitle); + } + $activeTitle + .addClass(className.active) + ; + $activeContent + .stop(true, true) + .addClass(className.animating) + ; + if(settings.animateChildren) { + if($.fn.transition !== undefined && $module.transition('is supported')) { + $activeContent + .children() + .transition({ + animation : 'fade in', + queue : false, + useFailSafe : true, + debug : settings.debug, + verbose : settings.verbose, + duration : settings.duration + }) + ; + } + else { + $activeContent + .children() + .stop(true, true) + .animate({ + opacity: 1 + }, settings.duration, module.resetOpacity) + ; + } + } + $activeContent + .slideDown(settings.duration, settings.easing, function() { + $activeContent + .removeClass(className.animating) + .addClass(className.active) + ; + module.reset.display.call(this); + settings.onOpen.call(this); + settings.onChange.call(this); + }) + ; + }, + + close: function(query) { + var + $activeTitle = (query !== undefined) + ? (typeof query === 'number') + ? $title.eq(query) + : $(query).closest(selector.title) + : $(this).closest(selector.title), + $activeContent = $activeTitle.next($content), + isAnimating = $activeContent.hasClass(className.animating), + isActive = $activeContent.hasClass(className.active), + isOpening = (!isActive && isAnimating), + isClosing = (isActive && isAnimating) + ; + if((isActive || isOpening) && !isClosing) { + module.debug('Closing accordion content', $activeContent); + settings.onClosing.call($activeContent); + settings.onChanging.call($activeContent); + $activeTitle + .removeClass(className.active) + ; + $activeContent + .stop(true, true) + .addClass(className.animating) + ; + if(settings.animateChildren) { + if($.fn.transition !== undefined && $module.transition('is supported')) { + $activeContent + .children() + .transition({ + animation : 'fade out', + queue : false, + useFailSafe : true, + debug : settings.debug, + verbose : settings.verbose, + duration : settings.duration + }) + ; + } + else { + $activeContent + .children() + .stop(true, true) + .animate({ + opacity: 0 + }, settings.duration, module.resetOpacity) + ; + } + } + $activeContent + .slideUp(settings.duration, settings.easing, function() { + $activeContent + .removeClass(className.animating) + .removeClass(className.active) + ; + module.reset.display.call(this); + settings.onClose.call(this); + settings.onChange.call(this); + }) + ; + } + }, + + closeOthers: function(index) { + var + $activeTitle = (index !== undefined) + ? $title.eq(index) + : $(this).closest(selector.title), + $parentTitles = $activeTitle.parents(selector.content).prev(selector.title), + $activeAccordion = $activeTitle.closest(selector.accordion), + activeSelector = selector.title + '.' + className.active + ':visible', + activeContent = selector.content + '.' + className.active + ':visible', + $openTitles, + $nestedTitles, + $openContents + ; + if(settings.closeNested) { + $openTitles = $activeAccordion.find(activeSelector).not($parentTitles); + $openContents = $openTitles.next($content); + } + else { + $openTitles = $activeAccordion.find(activeSelector).not($parentTitles); + $nestedTitles = $activeAccordion.find(activeContent).find(activeSelector).not($parentTitles); + $openTitles = $openTitles.not($nestedTitles); + $openContents = $openTitles.next($content); + } + if( ($openTitles.length > 0) ) { + module.debug('Exclusive enabled, closing other content', $openTitles); + $openTitles + .removeClass(className.active) + ; + $openContents + .removeClass(className.animating) + .stop(true, true) + ; + if(settings.animateChildren) { + if($.fn.transition !== undefined && $module.transition('is supported')) { + $openContents + .children() + .transition({ + animation : 'fade out', + useFailSafe : true, + debug : settings.debug, + verbose : settings.verbose, + duration : settings.duration + }) + ; + } + else { + $openContents + .children() + .stop(true, true) + .animate({ + opacity: 0 + }, settings.duration, module.resetOpacity) + ; + } + } + $openContents + .slideUp(settings.duration , settings.easing, function() { + $(this).removeClass(className.active); + module.reset.display.call(this); + }) + ; + } + }, + + reset: { + + display: function() { + module.verbose('Removing inline display from element', this); + $(this).css('display', ''); + if( $(this).attr('style') === '') { + $(this) + .attr('style', '') + .removeAttr('style') + ; + } + }, + + opacity: function() { + module.verbose('Removing inline opacity from element', this); + $(this).css('opacity', ''); + if( $(this).attr('style') === '') { + $(this) + .attr('style', '') + .removeAttr('style') + ; + } + }, + + }, + + setting: function(name, value) { + module.debug('Changing setting', name, value); + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + if($.isPlainObject(settings[name])) { + $.extend(true, settings[name], value); + } + else { + settings[name] = value; + } + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + module.debug('Changing internal', name, value); + if(value !== undefined) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else { + module[name] = value; + } + } + else { + return module[name]; + } + }, + debug: function() { + if(!settings.silent && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(!settings.silent && settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + if(!settings.silent) { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + } + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Element' : element, + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 500); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + object = instance, + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && object !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) { + object = object[camelCaseValue]; + } + else if( object[camelCaseValue] !== undefined ) { + found = object[camelCaseValue]; + return false; + } + else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) { + object = object[value]; + } + else if( object[value] !== undefined ) { + found = object[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + instance.invoke('destroy'); + } + module.initialize(); + } + }) + ; + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.accordion.settings = { + + name : 'Accordion', + namespace : 'accordion', + + silent : false, + debug : false, + verbose : false, + performance : true, + + on : 'click', // event on title that opens accordion + + observeChanges : true, // whether accordion should automatically refresh on DOM insertion + + exclusive : true, // whether a single accordion content panel should be open at once + collapsible : true, // whether accordion content can be closed + closeNested : false, // whether nested content should be closed when a panel is closed + animateChildren : true, // whether children opacity should be animated + + duration : 350, // duration of animation + easing : 'easeOutQuad', // easing equation for animation + + onOpening : function(){}, // callback before open animation + onClosing : function(){}, // callback before closing animation + onChanging : function(){}, // callback before closing or opening animation + + onOpen : function(){}, // callback after open animation + onClose : function(){}, // callback after closing animation + onChange : function(){}, // callback after closing or opening animation + + error: { + method : 'The method you called is not defined' + }, + + className : { + active : 'active', + animating : 'animating' + }, + + selector : { + accordion : '.accordion', + title : '.title', + trigger : '.title', + content : '.content' + } + +}; + +// Adds easing +$.extend( $.easing, { + easeOutQuad: function (x, t, b, c, d) { + return -c *(t/=d)*(t-2) + b; + } +}); + +})( jQuery, window, document ); + diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/modules/accordion.less b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/modules/accordion.less new file mode 100644 index 00000000..eaf07769 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/modules/accordion.less @@ -0,0 +1,219 @@ +/*! + * # Semantic UI - Accordion + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Theme +*******************************/ + +@type : 'module'; +@element : 'accordion'; + +@import (multiple) '../../theme.config'; + +/******************************* + Accordion +*******************************/ + +.ui.accordion, +.ui.accordion .accordion { + max-width: 100%; +} +.ui.accordion .accordion { + margin: @childAccordionMargin; + padding: @childAccordionPadding; +} + +/* Title */ +.ui.accordion .title, +.ui.accordion .accordion .title { + cursor: pointer; +} + +/* Default Styling */ +.ui.accordion .title:not(.ui) { + padding: @titlePadding; + font-family: @titleFont; + font-size: @titleFontSize; + color: @titleColor; +} + +/* Content */ +.ui.accordion .title ~ .content, +.ui.accordion .accordion .title ~ .content { + display: none; +} + +/* Default Styling */ +.ui.accordion:not(.styled) .title ~ .content:not(.ui), +.ui.accordion:not(.styled) .accordion .title ~ .content:not(.ui) { + margin: @contentMargin; + padding: @contentPadding; +} +.ui.accordion:not(.styled) .title ~ .content:not(.ui):last-child { + padding-bottom: 0em; +} + +/* Arrow */ +.ui.accordion .title .dropdown.icon, +.ui.accordion .accordion .title .dropdown.icon { + display: @iconDisplay; + float: @iconFloat; + opacity: @iconOpacity; + width: @iconWidth; + height: @iconHeight; + margin: @iconMargin; + padding: @iconPadding; + font-size: @iconFontSize; + transition: @iconTransition; + vertical-align: @iconVerticalAlign; + transform: @iconTransform; +} + +/*-------------- + Coupling +---------------*/ + +/* Menu */ +.ui.accordion.menu .item .title { + display: block; + padding: @menuTitlePadding; +} +.ui.accordion.menu .item .title > .dropdown.icon { + float: @menuIconFloat; + margin: @menuIconMargin; + transform: @menuIconTransform; +} + +/* Header */ +.ui.accordion .ui.header .dropdown.icon { + font-size: @iconFontSize; + margin: @iconMargin; +} + +/******************************* + States +*******************************/ + +.ui.accordion .active.title .dropdown.icon, +.ui.accordion .accordion .active.title .dropdown.icon { + transform: @activeIconTransform; +} + +.ui.accordion.menu .item .active.title > .dropdown.icon { + transform: @activeIconTransform; +} + +/******************************* + Types +*******************************/ + +/*-------------- + Styled +---------------*/ + +.ui.styled.accordion { + width: @styledWidth; +} + +.ui.styled.accordion, +.ui.styled.accordion .accordion { + border-radius: @styledBorderRadius; + background: @styledBackground; + box-shadow: @styledBoxShadow; +} +.ui.styled.accordion .title, +.ui.styled.accordion .accordion .title { + margin: @styledTitleMargin; + padding: @styledTitlePadding; + color: @styledTitleColor; + font-weight: @styledTitleFontWeight; + border-top: @styledTitleBorder; + transition: @styledTitleTransition; +} +.ui.styled.accordion > .title:first-child, +.ui.styled.accordion .accordion .title:first-child { + border-top: none; +} + + +/* Content */ +.ui.styled.accordion .content, +.ui.styled.accordion .accordion .content { + margin: @styledContentMargin; + padding: @styledContentPadding; +} +.ui.styled.accordion .accordion .content { + padding: @styledChildContentMargin; + padding: @styledChildContentPadding; +} + + +/* Hover */ +.ui.styled.accordion .title:hover, +.ui.styled.accordion .active.title, +.ui.styled.accordion .accordion .title:hover, +.ui.styled.accordion .accordion .active.title { + background: @styledTitleHoverBackground; + color: @styledTitleHoverColor; +} +.ui.styled.accordion .accordion .title:hover, +.ui.styled.accordion .accordion .active.title { + background: @styledHoverChildTitleBackground; + color: @styledHoverChildTitleColor; +} + + +/* Active */ +.ui.styled.accordion .active.title { + background: @styledActiveTitleBackground; + color: @styledActiveTitleColor; +} +.ui.styled.accordion .accordion .active.title { + background: @styledActiveChildTitleBackground; + color: @styledActiveChildTitleColor; +} + + +/******************************* + States +*******************************/ + +/*-------------- + Active +---------------*/ + +.ui.accordion .active.content, +.ui.accordion .accordion .active.content { + display: block; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Fluid +---------------*/ + +.ui.fluid.accordion, +.ui.fluid.accordion .accordion { + width: 100%; +} + +/*-------------- + Inverted +---------------*/ + +.ui.inverted.accordion .title:not(.ui) { + color: @invertedTitleColor; +} + +.loadUIOverrides(); + diff --git a/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/modules/checkbox.js b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/modules/checkbox.js new file mode 100644 index 00000000..f88c4d09 --- /dev/null +++ b/wms/contract-repair/semantic/Semantic-UI-master/src/definitions/modules/checkbox.js @@ -0,0 +1,831 @@ +/*! + * # Semantic UI - Checkbox + * http://github.com/semantic-org/semantic-ui/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +'use strict'; + +window = (typeof window != 'undefined' && window.Math == Math) + ? window + : (typeof self != 'undefined' && self.Math == Math) + ? self + : Function('return this')() +; + +$.fn.checkbox = function(parameters) { + var + $allModules = $(this), + moduleSelector = $allModules.selector || '', + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + returnedValue + ; + + $allModules + .each(function() { + var + settings = $.extend(true, {}, $.fn.checkbox.settings, parameters), + + className = settings.className, + namespace = settings.namespace, + selector = settings.selector, + error = settings.error, + + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + + $module = $(this), + $label = $(this).children(selector.label), + $input = $(this).children(selector.input), + input = $input[0], + + initialLoad = false, + shortcutPressed = false, + instance = $module.data(moduleNamespace), + + observer, + element = this, + module + ; + + module = { + + initialize: function() { + module.verbose('Initializing checkbox', settings); + + module.create.label(); + module.bind.events(); + + module.set.tabbable(); + module.hide.input(); + + module.observeChanges(); + module.instantiate(); + module.setup(); + }, + + instantiate: function() { + module.verbose('Storing instance of module', module); + instance = module; + $module + .data(moduleNamespace, module) + ; + }, + + destroy: function() { + module.verbose('Destroying module'); + module.unbind.events(); + module.show.input(); + $module.removeData(moduleNamespace); + }, + + fix: { + reference: function() { + if( $module.is(selector.input) ) { + module.debug('Behavior called on adjusting invoked element'); + $module = $module.closest(selector.checkbox); + module.refresh(); + } + } + }, + + setup: function() { + module.set.initialLoad(); + if( module.is.indeterminate() ) { + module.debug('Initial value is indeterminate'); + module.indeterminate(); + } + else if( module.is.checked() ) { + module.debug('Initial value is checked'); + module.check(); + } + else { + module.debug('Initial value is unchecked'); + module.uncheck(); + } + module.remove.initialLoad(); + }, + + refresh: function() { + $label = $module.children(selector.label); + $input = $module.children(selector.input); + input = $input[0]; + }, + + hide: { + input: function() { + module.verbose('Modifying z-index to be unselectable'); + $input.addClass(className.hidden); + } + }, + show: { + input: function() { + module.verbose('Modifying z-index to be selectable'); + $input.removeClass(className.hidden); + } + }, + + observeChanges: function() { + if('MutationObserver' in window) { + observer = new MutationObserver(function(mutations) { + module.debug('DOM tree modified, updating selector cache'); + module.refresh(); + }); + observer.observe(element, { + childList : true, + subtree : true + }); + module.debug('Setting up mutation observer', observer); + } + }, + + attachEvents: function(selector, event) { + var + $element = $(selector) + ; + event = $.isFunction(module[event]) + ? module[event] + : module.toggle + ; + if($element.length > 0) { + module.debug('Attaching checkbox events to element', selector, event); + $element + .on('click' + eventNamespace, event) + ; + } + else { + module.error(error.notFound); + } + }, + + event: { + click: function(event) { + var + $target = $(event.target) + ; + if( $target.is(selector.input) ) { + module.verbose('Using default check action on initialized checkbox'); + return; + } + if( $target.is(selector.link) ) { + module.debug('Clicking link inside checkbox, skipping toggle'); + return; + } + module.toggle(); + $input.focus(); + event.preventDefault(); + }, + keydown: function(event) { + var + key = event.which, + keyCode = { + enter : 13, + space : 32, + escape : 27 + } + ; + if(key == keyCode.escape) { + module.verbose('Escape key pressed blurring field'); + $input.blur(); + shortcutPressed = true; + } + else if(!event.ctrlKey && ( key == keyCode.space || key == keyCode.enter) ) { + module.verbose('Enter/space key pressed, toggling checkbox'); + module.toggle(); + shortcutPressed = true; + } + else { + shortcutPressed = false; + } + }, + keyup: function(event) { + if(shortcutPressed) { + event.preventDefault(); + } + } + }, + + check: function() { + if( !module.should.allowCheck() ) { + return; + } + module.debug('Checking checkbox', $input); + module.set.checked(); + if( !module.should.ignoreCallbacks() ) { + settings.onChecked.call(input); + settings.onChange.call(input); + } + }, + + uncheck: function() { + if( !module.should.allowUncheck() ) { + return; + } + module.debug('Unchecking checkbox'); + module.set.unchecked(); + if( !module.should.ignoreCallbacks() ) { + settings.onUnchecked.call(input); + settings.onChange.call(input); + } + }, + + indeterminate: function() { + if( module.should.allowIndeterminate() ) { + module.debug('Checkbox is already indeterminate'); + return; + } + module.debug('Making checkbox indeterminate'); + module.set.indeterminate(); + if( !module.should.ignoreCallbacks() ) { + settings.onIndeterminate.call(input); + settings.onChange.call(input); + } + }, + + determinate: function() { + if( module.should.allowDeterminate() ) { + module.debug('Checkbox is already determinate'); + return; + } + module.debug('Making checkbox determinate'); + module.set.determinate(); + if( !module.should.ignoreCallbacks() ) { + settings.onDeterminate.call(input); + settings.onChange.call(input); + } + }, + + enable: function() { + if( module.is.enabled() ) { + module.debug('Checkbox is already enabled'); + return; + } + module.debug('Enabling checkbox'); + module.set.enabled(); + settings.onEnable.call(input); + // preserve legacy callbacks + settings.onEnabled.call(input); + }, + + disable: function() { + if( module.is.disabled() ) { + module.debug('Checkbox is already disabled'); + return; + } + module.debug('Disabling checkbox'); + module.set.disabled(); + settings.onDisable.call(input); + // preserve legacy callbacks + settings.onDisabled.call(input); + }, + + get: { + radios: function() { + var + name = module.get.name() + ; + return $('input[name="' + name + '"]').closest(selector.checkbox); + }, + otherRadios: function() { + return module.get.radios().not($module); + }, + name: function() { + return $input.attr('name'); + } + }, + + is: { + initialLoad: function() { + return initialLoad; + }, + radio: function() { + return ($input.hasClass(className.radio) || $input.attr('type') == 'radio'); + }, + indeterminate: function() { + return $input.prop('indeterminate') !== undefined && $input.prop('indeterminate'); + }, + checked: function() { + return $input.prop('checked') !== undefined && $input.prop('checked'); + }, + disabled: function() { + return $input.prop('disabled') !== undefined && $input.prop('disabled'); + }, + enabled: function() { + return !module.is.disabled(); + }, + determinate: function() { + return !module.is.indeterminate(); + }, + unchecked: function() { + return !module.is.checked(); + } + }, + + should: { + allowCheck: function() { + if(module.is.determinate() && module.is.checked() && !module.should.forceCallbacks() ) { + module.debug('Should not allow check, checkbox is already checked'); + return false; + } + if(settings.beforeChecked.apply(input) === false) { + module.debug('Should not allow check, beforeChecked cancelled'); + return false; + } + return true; + }, + allowUncheck: function() { + if(module.is.determinate() && module.is.unchecked() && !module.should.forceCallbacks() ) { + module.debug('Should not allow uncheck, checkbox is already unchecked'); + return false; + } + if(settings.beforeUnchecked.apply(input) === false) { + module.debug('Should not allow uncheck, beforeUnchecked cancelled'); + return false; + } + return true; + }, + allowIndeterminate: function() { + if(module.is.indeterminate() && !module.should.forceCallbacks() ) { + module.debug('Should not allow indeterminate, checkbox is already indeterminate'); + return false; + } + if(settings.beforeIndeterminate.apply(input) === false) { + module.debug('Should not allow indeterminate, beforeIndeterminate cancelled'); + return false; + } + return true; + }, + allowDeterminate: function() { + if(module.is.determinate() && !module.should.forceCallbacks() ) { + module.debug('Should not allow determinate, checkbox is already determinate'); + return false; + } + if(settings.beforeDeterminate.apply(input) === false) { + module.debug('Should not allow determinate, beforeDeterminate cancelled'); + return false; + } + return true; + }, + forceCallbacks: function() { + return (module.is.initialLoad() && settings.fireOnInit); + }, + ignoreCallbacks: function() { + return (initialLoad && !settings.fireOnInit); + } + }, + + can: { + change: function() { + return !( $module.hasClass(className.disabled) || $module.hasClass(className.readOnly) || $input.prop('disabled') || $input.prop('readonly') ); + }, + uncheck: function() { + return (typeof settings.uncheckable === 'boolean') + ? settings.uncheckable + : !module.is.radio() + ; + } + }, + + set: { + initialLoad: function() { + initialLoad = true; + }, + checked: function() { + module.verbose('Setting class to checked'); + $module + .removeClass(className.indeterminate) + .addClass(className.checked) + ; + if( module.is.radio() ) { + module.uncheckOthers(); + } + if(!module.is.indeterminate() && module.is.checked()) { + module.debug('Input is already checked, skipping input property change'); + return; + } + module.verbose('Setting state to checked', input); + $input + .prop('indeterminate', false) + .prop('checked', true) + ; + module.trigger.change(); + }, + unchecked: function() { + module.verbose('Removing checked class'); + $module + .removeClass(className.indeterminate) + .removeClass(className.checked) + ; + if(!module.is.indeterminate() && module.is.unchecked() ) { + module.debug('Input is already unchecked'); + return; + } + module.debug('Setting state to unchecked'); + $input + .prop('indeterminate', false) + .prop('checked', false) + ; + module.trigger.change(); + }, + indeterminate: function() { + module.verbose('Setting class to indeterminate'); + $module + .addClass(className.indeterminate) + ; + if( module.is.indeterminate() ) { + module.debug('Input is already indeterminate, skipping input property change'); + return; + } + module.debug('Setting state to indeterminate'); + $input + .prop('indeterminate', true) + ; + module.trigger.change(); + }, + determinate: function() { + module.verbose('Removing indeterminate class'); + $module + .removeClass(className.indeterminate) + ; + if( module.is.determinate() ) { + module.debug('Input is already determinate, skipping input property change'); + return; + } + module.debug('Setting state to determinate'); + $input + .prop('indeterminate', false) + ; + }, + disabled: function() { + module.verbose('Setting class to disabled'); + $module + .addClass(className.disabled) + ; + if( module.is.disabled() ) { + module.debug('Input is already disabled, skipping input property change'); + return; + } + module.debug('Setting state to disabled'); + $input + .prop('disabled', 'disabled') + ; + module.trigger.change(); + }, + enabled: function() { + module.verbose('Removing disabled class'); + $module.removeClass(className.disabled); + if( module.is.enabled() ) { + module.debug('Input is already enabled, skipping input property change'); + return; + } + module.debug('Setting state to enabled'); + $input + .prop('disabled', false) + ; + module.trigger.change(); + }, + tabbable: function() { + module.verbose('Adding tabindex to checkbox'); + if( $input.attr('tabindex') === undefined) { + $input.attr('tabindex', 0); + } + } + }, + + remove: { + initialLoad: function() { + initialLoad = false; + } + }, + + trigger: { + change: function() { + var + events = document.createEvent('HTMLEvents'), + inputElement = $input[0] + ; + if(inputElement) { + module.verbose('Triggering native change event'); + events.initEvent('change', true, false); + inputElement.dispatchEvent(events); + } + } + }, + + + create: { + label: function() { + if($input.prevAll(selector.label).length > 0) { + $input.prev(selector.label).detach().insertAfter($input); + module.debug('Moving existing label', $label); + } + else if( !module.has.label() ) { + $label = $('